Start by washing the basmati rice until the water runs mostly clear. Soak the rice for about 20 to 30 minutes while you prepare the rest of the ingredients.
Heat oil or ghee in a heavy-bottomed pot. Add the whole spices and let them sizzle for a few seconds until fragrant. Add sliced onions and cook them until they turn golden. This step gives the pulao a lot of flavor, so try not to rush it.
Next, add ginger, garlic, and green chilies. Sauté for a minute, then add the chicken. Cook the chicken until it changes color and starts to brown lightly.
Add chopped tomatoes(didn't used), yogurt, salt, red chili powder, coriander powder, and garam masala. Cook everything together until the tomatoes soften and the masala coats the chicken nicely.
Once the chicken is coated well with the spices, add soaked rice without water and saute for a few mins.
Now add hot water. Mix gently, cover the pot, and cook on low heat until the rice is tender and the chicken is fully cooked.
Turn off the heat and let the pulao rest for a few minutes before opening the lid. Fluff the rice gently with a fork so the grains stay whole and separate.