Meng in een ruime kom alle ingrediënten voor de marinade. Voeg het lamsvlees toe en meng goed. Dek af en laat minimaal 2 uur, maar liefst een hele nacht, marineren in de koelkast.
Breng in een ruime pan op middelhoog vuur de rijst met het zout, laurierblaadje, de kruidnagels, kardemompeulen, ghee en 2 liter water aan de kook. Zet het vuur laag en kook de rijst in 10 minuten beetgaar. Giet af en laat, uitgespreid over een platte schaal, afkoelen.
Verhit de zonnebloemolie in een pan op middelhoog vuur. Bak de ui in 5–8 minuten goudbruin. Neem met de schuimspaan uit de pan, laat uitlekken op keukenpapier en zet opzij.
Verhit in een steelpan de melk tot net onder het kookpunt. Neem van het vuur, week de saffraan erin en zet opzij.
Verhit intussen 1 eetlepel ghee in een pan met dikke bodem op middelhoog vuur. Voeg het lamsvlees toe en bak in 20 minuten rondom aan. Neem de helft van het vlees uit de pan en zet opzij.
Verdeel de helft van de beetgare rijst over het lamsvlees in de pan. Verdeel de helft van de gebakken uien en de helft van de munt en koriander eroverheen. Verdeel de rest van het lamsvlees erover en herhaal met de resterende rijst, gebakken uien, munt en koriander.
Creëer 3 holtes in de bovenste rijstlaag en verdeel er de resterende 3 eetlepels ghee over. Schenk de saffraanmelk over de rijst.
Stoof de rijst met het deksel op de pan in 20–25 minuten verder gaar. Zet het vuur uit en laat de rijst met het deksel op de pan 5 minuten rusten. Roer de rijst los met een vork. Serveer met de yoghurt.