Wash the basmati rice thoroughly and soak it in water for 30 minutes. Drain the water and set the rice aside. In a large pot, bring 6 cups of water to a boil, add a pinch of salt, and cook the rice until it’s 70% done. Drain and keep aside.
Heat oil or ghee in a large heavy bottomed pan over medium heat. Add sliced onions and fry until golden brown and crispy. Remove half the onions and set aside for garnishing.
In the same pan, add cumin seeds, cinnamon, cardamom, cloves, and bay leaf. Stir for a few seconds until fragrant. Add minced garlic, grated ginger, and green chilies. Sauté until the raw smell disappears.
Add the chopped tomatoes, turmeric powder, red chili powder, garam masala, and biryani masala. Cook until the tomatoes soften and the oil separates from the spices.
Add the mutton pieces to the pan, stirring to coat the meat with the spice mixture. Cook the mutton on medium heat for 10-15 minutes, stirring occasionally, until it starts to brown.
Add yogurt, fresh coriander, and mint leaves. Stir well, cover the pan, and let the mutton cook on low heat for 25-30 minutes, or until it becomes tender. If needed, add a little water during cooking to prevent burning.
In a separate heavy-bottomed pot, layer half of the partially cooked rice, followed by the mutton mixture, and then the remaining rice. Drizzle the saffron milk (if using) over the top layer of rice. Cover the pot tightly and cook on low heat for 15-20 minutes, allowing the rice and mutton to steam together (this is the "dum" method).
Turn off the heat and let the biryani rest for 5-10 minutes. Garnish with crispy fried onions. Serve hot with raita or a simple salad on the side for a complete meal. Enjoy the fragrant and flavourful mutton biryani!