Rinse basmati rice in cold water once, then soak for 30 minutes. Drain and set aside until needed.
Gather spices into a small bowl and set by the stove.
Chop onions, garlic and ginger and keep together in a small bowl set by the stove.
Measure 1 3/4 cups water or stock and keep by the stove.
for the rice
Start a heavy-bottomed rice cooking pot on medium heat. Add butter or ghee. Once melted, add the cinnamon stick, cardamom pods, bay leaves and optional fennel seeds. Sauté gently until lightly toasted and aromatic.
Add the onions, garlic and ginger and sauté until lightly browned.
Add the drained rice and sauté for 2-3 minutes until the rice is lightly toasted.
Add the water or stock, along with the raisins, apricots or cranberries, and 1/4 teaspoon salt, and bring to a boil. Reduce heat to a simmer and cover. Set a timer for 15 minutes. When the timer goes off, turn off the heat and let it rest for 5 minutes before checking.
finish the rice
Chop the cilantro or parsley for the garnish, then gather your nuts. You may choose to chop the nuts, or leave them whole.
Heat a tiny skillet on medium-low heat. Add 1/2 teaspoon ghee, optional coriander powder and a pinch of salt, followed by the nuts. Cook, stirring frequently, until lightly brown. Turn off the heat.
Transfer the cooked rice to a serving bowl and top with fresh herbs and toasted nuts.