Mix yogurt, ginger garlic paste, salt, turmeric, red chili powder, garam masala, and lemon juice. Coat chicken well and marinate for at least 1 hour or overnight in the refrigerator.
Rinse basmati rice until water runs clear. Soak for 30 minutes, then drain completely.
Heat ghee in a heavy bottom pot. Add whole spices and sauté until aromatic.
Add sliced onions and cook until light golden brown.
Add marinated chicken and cook on medium heat for 5 minutes. Cover and cook on low until tender and gravy thickens.
Stir in yogurt, mint, green chili, and garam masala. Adjust salt if needed.
Spread chicken evenly at the base. Layer drained rice evenly on top without mixing.
Pour hot salted water gently along the sides and over the rice. Sprinkle mint, fried onions, and saffron milk.
Cover tightly and cook on medium until water bubbles. Reduce heat to low and cook for about 15 minutes until rice is tender and fluffy.
Rest for 10 minutes. Fluff gently with a fork and serve hot.