Heat oil in a heavy-bottomed pan over medium heat. Add whole spices if using and let them sizzle for 30 seconds.
Add finely chopped onions and cook until soft and translucent, about 5-7 minutes.
Add ginger-garlic paste and sliced green chilli. Cook for 1 minute until fragrant.
Add chopped tomato and cook until it breaks down to a mushy consistency, about 5 minutes.
Add chilled yogurt gradually while stirring continuously to prevent curdling.
Add all powdered spices (turmeric, chilli powder, garam masala, salt, pepper powder, and fennel seed powder). Stir well.
Add chicken pieces and cook until browned on all sides and coated with the spice mixture.
Add fresh methi leaves and simmer until the chicken is fully cooked and tender, about 15-20 minutes.
Sprinkle kasuri methi if using and simmer for another 2 minutes before serving.