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 finely chopped onions and cook, stirring frequently, until deeply golden brown, about 8 minutes.
03 - Stir in the minced garlic and grated ginger; cook for 1 minute until aromatic.
04 - Add the chopped tomatoes and green chilies. Cook until the tomatoes break down and the mixture thickens, about 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 spiced masala. Cook until lightly browned on all sides, about 5 minutes.
07 - Gradually stir in the yogurt, stirring continuously over medium heat to prevent curdling and ensure a smooth sauce.
08 - Pour in water or chicken broth, bring to a gentle simmer, cover, and cook for 20–25 minutes until the chicken is cooked through and fork-tender.
09 - Stir in the garam masala and lemon juice. Simmer uncovered for another 3–5 minutes to thicken the sauce to your desired consistency.
10 - Remove whole spices (bay leaves, cinnamon stick, cloves, cardamom pods) before serving. Garnish generously with fresh chopped cilantro.