Clean & cut chicken. Take the chicken in a medium sized bowl and add all the ingredients under marination. Rub and cover the chicken pieces with the marinade. Let it marinate for at least 2 hours or overnight.
Before beginning with cooking, let's prep. Roughly grind, cloves, cardamom, peppercorns. Keep it aside.
Pick methi leaves from stalks and chop roughly. Don't chop finely as this might release bitter juice from the leaves. Wash them throughly (at least twice) before use. Methi has fine dirt on it which should be removed before consuming.
In a pan/ pot heat 1 tbsp oil. Add onions and cook until they turn pink and translucent. Now add cashews and cook for a minute.
Remove from heat and let it cool. Once it's at room temperature, add this mixture to a blender/ food processor and obtain a smooth paste.
Take yogurt in a medium mixing bowl and beat it to get a smooth consistency. Add the above onion paste and salt and mix well. Keep it aside.
Heat 2 tbsp oil in the same pan/ pot and add bay leaves, roughly ground cloves, cardamom, peppercorns and cinnamon powder. Cook for 1/2 minute.
Now add the marinated chicken pieces and cook until water evaporates. Check if the chicken is cooked (this can be done by cutting a chicken piece with the spoon. If it easily cuts, that means chicken is cooked.)
Next add tomato paste/ chopped tomatoes and methi leaves. If using paste, add water to get a gravy consistency and bring it to a boil. If using chopped tomatoes, cook until oil leaves sides.
Now add the yogurt mixture and green chili. Stir continuously until bringing the gravy to a boil. Add water if necessary
Let it boil for another 10 minutes. Next add coriander powder, garam masala and kasuri methi and salt (as needed).
Stir and cook for another 5-7 minutes.
Remove from heat, transfer to a serving dish and garnish with cilantro.