Heat oil in a heavy bottom large pot over medium-high heat.
Once the oil is hot, add cinnamon, cloves, cardamoms, and bay leaves and let them crackle for 5-6 seconds.
Add onions and fry until onions turn slightly brown, stirring frequently
Add ginger garlic paste, and chili paste, and fry for 1 minute, stirring frequently.
Now add tomatoes and cook for 3-4 minutes.
Add yogurt, and lime juice and cook for 2-3 minutes. Add cilantro and mint and cook for a minute. Stir frequently while cooking.
Now add chicken and salt and toss it well with the masala. Cook for 3-4 minutes.
Add 3 cups of water and stir gently.
Drain the water from the rice and spread the rice over the masala very gently. Reduce the heat to very low.
Cover the pot with a tight lid and cook the biryani for 30-35 minutes or until the rice is perfectly cooked and all the liquid is absorbed.
Remove the pan from heat and let it rest for 5 minutes. Fluff the biryani using a fork. Serve hot.