Rinse the basmati rice under cold water until the water runs clear. Soak for 30 minutes.
Heat oil or ghee in a large pot. Add sliced onions and sauté until golden brown.
Add minced garlic, grated ginger, and green chilies. Sauté for 2 minutes.
Add chicken pieces and cook until browned on all sides.
Stir in chopped tomatoes, turmeric powder, and salt. Cook until tomatoes soften.
Mix in yogurt, cilantro, and mint leaves. Cook for another 5 minutes.
Add soaked rice over the chicken mixture and spread evenly.
Pour in 4 cups of water and bring to a boil. Reduce heat to low.
Cover the pot tightly and let it simmer for 25-30 minutes until rice is cooked.
Once done, fluff the biryani with a fork and sprinkle garam masala on top.