Pull out the marinated chicken out of the refrigerator 1-1.5 hours before beginning to cook.
In a heavy bottom pot or a dutch oven (4 qt or larger), add the ghee and warm it up on low heat.
Temper the ghee with all the whole spices and saute for 8-10 seconds on low heat taking care that the spices do not burn and their flavor starts releasing.
Add the onion paste next and fry on low medium heat saute the onion paste till its rawness is gone. You will notice that the color will be very light brown and the oil is separating. Dont let the onions brown too much else it will take away the color of sauce.
Add cumin seeds and the ginger garlic and chilli paste next and saute for a minute till you smell a nice aroma.
Reduce the heat to low, add 2-3 tablespoons of water and add the marinated chicken pieces. Sprinkle the spice powder that we made earlier.
Gently stir the chicken to mix with onion and coat in spices. Let the stove be on low while you stir the chicken. This will make sure that the yogurt wont curdle. Stir for couple of minutes so that the yogurt starts warming up.
Now, add the cashew-poppy seeds paste we made along with salt & sugar. Stir to combine everything. You may add some green chilies at this point. Cover the pot and let cook on low medium heat for 10 minutes. You wil need to stir around a few times in between. Once you see that the sauce has started gentling bubbling, reduce the heat to low and let cook covered for another 15-20 minutes.
Around 25 minutes, open and check. You will see a layer of fat on the sides and a thin sauce. Make sure that the chicken pieces are cooked through but not falling apart. Taste to check and adjust the salt if needed. Add the saffron, nutmeg powder & kewra (if using). Mix and let the simmer for 2-3 more minutes. Switch off the stove and let rest for 15-20 minutes before serving.
Serve with rotis. parathas or rice, as you wish.