Warm the milk up in a small saucepan set over medium heat until steaming hot, or around 110°F (43°C). Grind half of the saffron strands to a fine powder using a mortar and pestle. Add the ground saffron and remaining saffron strands to the hot milk, cover, and let steep until ready to use.
Clean the rice of any debris. Place rice in a fine-mesh strainer and rinse it under cold running tap water until the water runs clear. Transfer rice to a medium mixing bowl, cover with fresh cold water, and let it soak for at least 30 minutes and up to 1 hour. Drain rice thoroughly.
While the rice soaks, add ¼ cup (60ml) ghee to a 5-quart Dutch oven and heat over medium heat until shimmering. Add onions, season with a pinch of salt, and cook until the onions caramelize and turn a dark shade of golden brown, about 15 to 20 minutes. Reduce heat to medium low. Transfer half of the onions to a small bowl. Add apricots, cashews, and raisins to onion remaining in pan and cook until the fruit turns plump and the nuts turn light golden brown, about 2 minutes. Remove from the heat and transfer to a separate small bowl.
Return the onions from the first small bowl to the Dutch oven; if the mixture looks dry, add up to 1 tablespoon (15ml) oil. Add the garlic, ginger, chile, garam masala, star anise, caraway, and turmeric and sauté until fragrant, about 30 to 45 seconds. Stir in the yogurt, cauliflower, potato, carrot, and water, along with 1 teaspoon of salt. Increase heat to medium-high and bring the contents of pot to a boil, then reduce heat to medium-low, cover with a lid, and cook, stirring often, until the vegetables are tender enough to be pierced with a knife, about 20 minutes. Once the vegetables are tender, stir in the peas and cook until heated through and tender, about 5 minutes.
Turn off heat, taste for seasoning and season with salt, if needed. Fold in cilantro and mint, then transfer contents of pot to medium mixing bowl. Rinse and wipe Dutch oven clean.
Meanwhile, prepare the rice. Combine rinsed rice with 4 cups (960 ml) water, lemon juice, 1 ½ teaspoons salt, green cardamom pods, cinnamon, cloves, bay leaf, and 1 teaspoon of ghee or oil in a large saucepan and bring to a boil over medium-high heat. Cook for 2 minutes, then strain rice and spices through a fine-mesh strainer; discard the cooking water.
Brush the base and the sides of the Dutch oven with the remaining 1 teaspoon of ghee. Spread out half of the rice in an even layer in the bottom of the Dutch oven. Add the cooked vegetables over the rice and spread them carefully in a single layer. Top the vegetables with the remaining rice. Sprinkle the saffron-infused milk over the rice, followed by the rosewater and the pandan water. Garnish the top of the rice with the reserved caramelized onions, dried fruit, and cashew mixture. Cover the Dutch oven with two sheets of aluminum foil, crimp the overhang to form a tight seal, and place the lid on top. Place Dutch oven over medium-low heat and cook until the rice is fully cooked, about 15 minutes.
Turn off the heat and let the Dutch oven sit for 5 minutes. Carefully, peel off the aluminum seal. Check for any liquid left at the bottom of the pot; if there is any, reseal the pot and cook it over medium low heat for an additional 5-10 minutes.
Using a fork loosen the rice a little and serve out of the Dutch oven, or transfer to a platter, and serve.
