Prep the add-ins: Warm a small pan with ghee over low heat. Add nuts and toast for 2–3 minutes until aromatic.
If using raisins, toss them in for the last 30 seconds. Set aside.
Bloom the saffron: Crush the saffron lightly and soak it in 1 tablespoon warm milk. This releases color and flavor.
Simmer the milk: In a heavy pot, bring whole milk to a gentle boil.
Reduce heat and simmer, stirring often, until it reduces by about one-third. Scrape the sides back into the milk to catch the thickened bits.
Add sweetness: Stir in sweetened condensed milk and sugar. Keep the heat low and continue simmering 8–10 minutes, stirring so it doesn’t stick.
Flavor it: Add cardamom, saffron milk, and a pinch of salt.
Simmer 2–3 minutes more. If you’re using rose or kewra water, add it now.
Kheer option (optional): If using rice or vermicelli, rinse and add it after step 3. Cook until tender before adding condensed milk and the rest of the flavors.
Finish with texture: Stir in most of the toasted nuts and raisins, saving some for garnish.
Taste and adjust sweetness or cardamom.
Serve: Enjoy warm for a cozy dessert, or chill for 2–4 hours for a thicker, pudding-like treat. Garnish with reserved nuts.