Rincer le riz basmati à l'eau froide jusqu'à ce que l'eau soit claire. Faire tremper pendant 30 minutes, puis égoutter.
Chauffer l'huile ou le ghee dans une grande casserole. Ajouter les graines de cumin, la cannelle, les clous de girofle et faire revenir jusqu'à ce qu'ils dégagent leur arôme.
Ajouter l'oignon émincé et faire revenir jusqu'à ce qu'il soit doré.
Incorporer la pâte de gingembre à l'ail et cuire pendant 2 minutes.
Ajouter les morceaux de poulet, le garam masala, le curcuma et le sel. Faire revenir jusqu'à ce que le poulet soit bien doré.
Ajouter les tomates et cuire jusqu'à ce qu'elles soient tendres.
Incorporer le yaourt, mélanger et laisser mijoter pendant 10 minutes à feu moyen.
Dans une casserole d'eau bouillante salée, cuire le riz jusqu'à ce qu'il soit à moitié cuit. Égoutter.
Diluer le safran dans un peu d'eau chaude si utilisé.
Dans une grande casserole ou un plat allant au four, étaler la moitié du riz, le mélange de poulet, puis le reste de riz. Arroser avec le safran si utilisé.
Couvrir hermétiquement avec un couvercle ou du papier aluminium et laisser reposer à feu très doux ou au four à 180°C pendant 20 minutes pour laisser les saveurs se mélanger.