Soak the saffron in warm milk and set aside.
Rinse the rice 2-3 times until the water runs clear. Soak in water for 20 minutes then drain, and set aside.
Heat ghee in a pan. Fry the almonds, cashews, and pistachios on medium heat for 2-3 minutes until golden. Remove with a slotted spoon, leaving the ghee in the pan.
Add the raisins and fry for a minute until they plump up. Remove and set aside.
Add a tablespoon of oil to the pan, then fry the sliced onions on medium-high heat for 6-8 minutes until golden brown. Set aside.
Wipe the pan clean and add 1 tablespoon of ghee. Add the whole spices and sauté for 30 seconds until aromatic.
Add the rinsed rice and gently stir to coat the rice with the spices.
Pour in hot water, add salt, ginger powder, and saffron milk, and mix well. Bring to a rolling boil on medium-high heat, then reduce the heat, cover, and cook for 10 minutes on low. Turn off the heat and let it sit for 10 more minutes before opening the lid. Add rose water if using and gently fluff the rice with a fork.
Top the rice with fried onions, nuts, and raisins.
Garnish with diced apple, pomegranate seeds, and rose petals.