Begin by marinating the chicken. In a bowl, mix the chicken pieces with yogurt, ginger-garlic paste, turmeric powder, red chili powder, and salt. Let it marinate for at least 30 minutes.
Rinse the basmati rice under cold water until the water runs clear, then soak it in water for about 30 minutes. Drain before cooking.
In a large pot or pressure cooker, heat oil or ghee over medium heat. Add the sliced onions and sauté until they are golden brown.
Add the marinated chicken to the pot and cook until it is no longer pink, about 5-7 minutes.
Stir in the chopped tomatoes, green chilies, cilantro, mint leaves, and garam masala. Cook for another 5-7 minutes until the tomatoes soften.
Add the soaked and drained rice to the pot, mixing gently with the chicken and spices.
Pour in 3-4 cups of water, enough to cover the rice, and bring the mixture to a boil.
Reduce the heat to low, cover the pot with a tight-fitting lid, and let it simmer for about 25 minutes (or pressure cook for 15 minutes with a whistle).
Once cooked, remove from heat and allow the biryani to rest covered for another 10 minutes to help fluff the rice.
Gently fluff the biryani with a fork, mixing the chicken and rice. Serve hot with raita or a salad on the side.