Heat oil in a saucepan or a wide pan. Roast cardamom, clove, cinnamon and shah jeera in oil. Then add onions and saute until light golden brown.
Throw in the green chilies, ginger garlic paste and saute until the raw smell of ginger dissipates.
Add coriander powder, chili powder, turmeric, salt, methi powder (if using) and roast the spices for a few seconds.
Add marinated chicken, green onions (if using), and saute on medium - medium high flame until spices coat the chicken pieces and chicken is lightly roasted.
Cover and cook on medium - medium high flame for 3-5 minutes until oil begins to separate.
Skip this step if chicken is marinated with yogurt. Whisk yogurt, reduce the flame to low and gradually add yogurt to chicken, mixing it quickly. This is a crucial step, don’t leave unattended until yogurt blends into the masala. Fry for a minute.
Increase the flame to medium - medium high, cover and cook until chicken releases some juices and chicken pieces are semi cooked.
Add 1 cup of water or as needed, coconut powder and bring to a boil.
Reduce the flame and simmer for 5-10 minutes until desired consistency is reached.
If using roasted coriander powder and garam masala powder, simmer for a couple of minutes and turn off the flame.
Garnish with cilantro and serve hot.
Serve it with rice, roties, parathas, puri and dosa.