Rinse the basmati rice in cold water and set aside.
Place saffron in a small bowl and add 50ml hot water and set aside.
In a large saucepan, heat the oil over medium heat. Add the onion, garlic, and carrot, and cook until soft and lightly browned, about 6-8 minutes.
Add the turmeric, paprika, cinnamon, cumin, and salt. Cook for 1-2 minutes, until fragrant.
Add the rinsed basmati rice to the pan, along with 400ml of water. Stir well to combine and reduce the heat to low, cover, and cook for 18-20 minutes, or until the water has been absorbed.
Remove from heat and let stand for 5 minutes, then fluff with a fork.
In a separate pan, melt the butter over medium heat. Add the pistachios, almonds, pomegranate seeds, and raisins, and toast, stirring occasionally until they are golden brown, about 3-4 minutes.
Stir the fruit and nut mixture into the cooked rice and drizzle the saffron mixture over the rice.
Place a clean kitchen towel over the pot, cover with a tight-fitting lid, and secure loose edges of the towel on top of the lid.
Cook until pot begins to steam, 6-8 minutes. Reduce heat to very low and cook, without stirring, until rice is tender.