Add chicken, curd, ginger-garlic paste, red chili powder, turmeric, coriander powder, cumin powder, garam masala, lemon juice, and salt to a bowl.
Mix well and marinate for at least 30 minutes.
Wash basmati rice 3 to 4 times and soak for 20 to 30 minutes.
Boil water with bay leaf, cardamoms, cloves, cinnamon, and salt.
Add soaked rice and cook until 70% done. Drain and keep aside.
Heat oil or ghee in a heavy-bottomed pan. Fry sliced onions until golden brown.
Remove half of the fried onions and keep aside for layering.
In the same pan, add green chilies and chopped tomato. Cook until soft.
Add marinated chicken and cook for 8 to 10 minutes.
Cover and cook for another 8 to 10 minutes until the chicken is almost cooked and the masala becomes thick.
Spread the chicken evenly in the pan.
Add half of the rice, then add coriander leaves, mint leaves, fried onions, and garam masala.
Add the remaining rice on top.
Add fried onions, herbs, ghee, and saffron milk if using.
Cover tightly and cook on very low heat for 18 to 20 minutes.
Turn off the heat and rest for 10 minutes.
Gently mix and serve hot.