Set the marinated chicken out of the refrigerator at least 1 hour prior to cooking.
In your wet grinder, add the poppy seeds first, add 3 tbsp water and give it a grind. Open and add cashews along with 3 tbsp of water. Grind both the things on high speed to a very fine paste. Add water if needed.
In a heavy bottom pot or dutch oven, add the ghee and warm it up on medium heat.
Temper the ghee with all the whole spices and saute for 30 seconds. Take care that the spices do not burn.
Add the onion paste next and on low medium heat saute the onion paste till you its beginning to change to light brown in color and the oil is separating. Dont let the onions brown too much.
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, wait for a minute and slowly add the marinated chicken to the pot. Also add the ground spices we made earlier. Gently stir the chicken continously for 2 minutes. Let the stove be on low while you stir the chicken. This will make sure that the yogurt wont curdle.
After stirring for 2 minutes, cover the pot and let cook undisturbed for 10 minutes on low heat.
Open the pot, stir the chicken, you will see a gravy forming from water of yogurt and chicken juices. Add the cashew-poppyseeds paste we made along with salt & sugar. Stir to combine , cover the pot and let cook again for 15 minutes on medium low. While the chicken is cooking just check once or twice to make sure that nothing is sticking to bottom of pot since cashew have the tendency to stick.
At the end of 15 minutes, open the pot. You will see a layer of fat on the sides and top of the chicken. Make sure that the chicken pieces are cooked through but not falling apart. Depending on the quality of your chicken the time taken can be anywhere from 15 minutes to 25 minutes.
At the end of cooking, check and adjust the salt if needed. Add the saffron, kewra and white pepper powder. Mix and let the curry simmer for 2-3 more minutes. Switch off the stove and let stand for atleast 30 minutes before serving.
The sauce of rezala is not runny at all so no extra water is added so please dont add any water, it will dilute the taste of the sauce.
Serve with rotis. parathas or rice, as you wish.