Heat a large pot on medium heat and add some oil. Wait for it to heat up, then add in your sliced onions and fry till they start to brown.
Add in all your whole spices, fry for a few minutes until aromatic, then add in the ginger garlic pastes.
Cook for a few minutes until the raw smells are gone, adding in a bit of water to keep it from burning if needed. Then add in all of your ground spices.
Fry in the oil for a minute then add in a splash of water to keep it from burning. Reduce and fry everything in the oil for a couple minutes and then add in some more water and reduce again.Repeat this step a few times until the sauce thickens and the oils separate. The more time you take the better your curry will taste. You can take out your whole spices at this point if you want. Then add in your chicken pieces
Fry in the curry for a few minutes until they brown a little, adding in water if needed to keep the curry from burning.
Then add in your yogurt, salt, and sugar. Mix well. Add cream if using.
Put on a lid and let simmer for about 20 minutes on low heat, checking in the middle to see if it needs some water to keep the bottom from burning.
Once your chicken is fully cooked, add in your whole green chilis, and some water if you want the sauce to be thinner, and cook for 5 more minutes.
Turn off the heat, and drizzle on some ghee. Sprinkle with some golden fried onions and enjoy!