On a medium heat, dry roast red chili and coriander seeds for 2 minutes. Add cloves, cardamoms, fennel seeds and cinnamon. Roast until they smell aromatic, for 1 to 2 mins.
Cool this and make a fine powder. Keep this aside.
On a medium flame, heat ghee/oil in a pan. Add cumin seeds and red chili.
When the seeds begin to sizzle, add the onions and saute until golden for 4 to 5 mins.
Stir in ginger garlic paste and saute for 30 to 60 seconds.
Add chicken and stir fry for 3 to 4 minutes, until the chicken turns pale. Lower the heat and stir in turmeric, red chili powder, salt and kadai masala.
Mix well and pour the pureed tomatoes. Cook on a medium heat until the tomato puree turns slightly thick & loses its raw flavor, for 3 to 4 mins.
Partially cover the pan and cook further until the chicken is tender and fully cooked through. The gravy should be thick at this stage.
Optional: Meanwhile melt butter in a wok. Add the bell peppers and onions, stir fry on a high heat until the capsicum is slightly blistered, for 2 to 3 mins, Avoid overcooking, keep them crunchy. Add this to the kadai chicken.
Taste test and add more salt if needed along with garam masala and kasuri methi.
Stir in the cashew puree. If using heavy cream or yogurt, pour it to a small bowl. Take a portion of the gravy and mix with it. Add back the tempered cream/yogurt to the kadai chicken.
Simmer for 2 mins & avoid overcooking to retain the crunch of bell peppers. Garnish with coriander leaves or ginger juliennes and slit green chilies.
Serve kadai chicken with flatbreads or basmati rice.