Wash the rice very well under running water. Then leave it in the strainer for half an hour to air dry.
Soak the Saffron strands in a small bowl with a little milk.
Put a pot on medium heat with the oil or Ghee and wait until it gets hot. Add all the whole spices (bay leaf, cardamom, cloves, cinnamon, and cumin). Wait a few seconds and add chopped onion. Fry them until they are transparent.
Add ginger-garlic paste. Fry for a few seconds and add the vegetables, a pinch of salt and garam masala. Sauté everything together for a few minutes until the vegetables are little soft.
Add the rice and mix everything well. Fry the rice over medium-low heat with the vegetables for one minute while stirring. Then add the hot water, warm milk and salt.
Stir everything and let it cook over medium-low heat. When the water level is equal to the level of the rice, add raisins. Cover the pot with a lid and lower the heat to a minimum.
Wait 15 minutes and do not lift the lid during these 15 minutes.
Then turn off the flame and open the lid. Sprinkle the Saffron mixed with milk. Sprinkle a pinch of garam masala and put the lid back on the pot. Let it rest with for few minutes.
Give it a gentle stir to puff it up very carefully and add the roasted nuts.
Serve hot with tomato raita (yoghurt and tomato sauce) or with any curry dish.