Rinse the basmati rice under cold water until the water runs clear.
Soak the rice in water for 30 minutes, then drain.
Heat oil or ghee in a large pot, add whole spices, and sauté until fragrant.
Add sliced onions and cook until golden brown.
Stir in minced garlic and grated ginger; sauté for another minute.
Add the chicken pieces and cook until they turn white.
Mix in chopped tomatoes, green chilies, and salt; cook until tomatoes soften.
Stir in yogurt, cooking until the chicken is well coated and tender.
Layer the soaked rice over the chicken, add fresh herbs, and pour in enough water to cook the rice.
Cover the pot and let it simmer on low heat for 25-30 minutes until the rice is fully cooked.