01 - Heat oil or ghee in a large heavy-bottomed pan over medium heat. Add bay leaves, cloves, cardamom pods, and cinnamon stick. Sauté for 1 minute until fragrant.
02 - Add the chopped onions and cook, stirring frequently, until they turn a deep golden brown, approximately 8 minutes.
03 - Stir in the minced garlic and grated ginger, cooking for about 1 minute until aromatic.
04 - Add the chopped tomatoes and green chilies. Cook until the tomatoes break down and the mixture thickens, roughly 4 minutes.
05 - Add cumin, coriander, turmeric, chili powder, salt, and black pepper. Stir thoroughly and cook for 2 minutes to bloom the spices and release their oils.
06 - Add the chicken pieces, coating them evenly with the masala. Cook until lightly browned on all sides, approximately 5 minutes.
07 - Gradually stir in the yogurt, stirring continuously to prevent curdling and ensure a smooth sauce.
08 - Pour in the water or chicken broth, bring to a gentle simmer, then cover and cook for 20–25 minutes until the chicken is fully cooked through and tender.
09 - Stir in the garam masala and lemon juice. Simmer uncovered for 3–5 minutes to allow the sauce to thicken and the flavors to meld.
10 - Remove the whole spices (bay leaves, cinnamon stick, cloves, cardamom pods) before serving. Garnish generously with fresh chopped cilantro.