Begin by washing the basmati rice in cold water until the water runs clear. Soak the rice in water for at least 30 minutes.
Heat vegetable oil in a large, heavy-bottomed pot or Dutch oven over medium-high heat.
Add cumin seeds, cloves, cardamom pods, cinnamon sticks, and bay leaves to the pot and sauté for a few seconds.
Add finely chopped onions to the pot and sauté until they turn golden brown.
Add ginger and garlic paste to the pot and sauté for 1-2 minutes.
Mix in finely chopped tomatoes, turmeric powder, red chili powder, garam masala powder, and salt to the pot. Cook the mixture until the tomatoes are completely cooked and the oil separates.
Add mutton pieces to the pot and mix well. Cook for 10-15 minutes until the mutton is browned on all sides.
Add enough water to cover the mutton, bring it to a boil, and then reduce the heat to low. Cover the pot with a lid and let the mutton simmer for 45-50 minutes or until the mutton is tender.
In the meantime, bring a large pot of water to a boil. Add the soaked rice and partially cook it for 5-6 minutes until it is parboiled. Drain the rice and set it aside.
Once the mutton is cooked, layer the partially cooked rice on top of the mutton in the pot. Sprinkle finely chopped coriander leaves and mint leaves on top of the rice.
Cover the pot with a tight-fitting lid, reduce the heat to the lowest setting, and let the biryani cook for 15-20 minutes or until the rice is fully cooked and fluffy.
Once done, remove the pot from the heat and let it rest for 10 minutes.
Serve hot with raita or a side salad.