Dans un plat, mettre le yaourt, le gingembre, l'ail, le piment et le sel. Mélanger.
Ajouter le poulet et bien l'envelopper de marinade, puis réserver au frais au minimum 1 heure, ou toute une nuit.
Dans le bol d'un blender, déposer les oignons frits avec 5 cuillères à soupe d'eau et pulser jusqu'à obtenir une pâte.
Préparer les épices: cardamome, cannelle, clous de girofle, poivre et feuilles de laurier. Mettre le glaçon dans un bol avec la pincée de safran et réserver.
Faire chauffer le ghee dans un faitout à feu moyen. Ajouter les épices en 1 fois, et les laisser infuser 1 petite minute en remuant pour qu'ils ne brûlent pas.
Verser sur les épices la pâte d'oignons frits et 4 cuillères à soupe d'eau. Laisser cuire jusqu'à ce que l'eau soit évaporée.
Ajouter le poulet et sa marinade et bien mélanger. Cuire à feu vif quelques minutes tout en mélangeant, puis ajouter 5 cuillères à soupe d'eau, baisser le feu, couvrir, et laisser mijoter environ 20 minutes en remuant de temps en temps (et en rajoutant un peu d'eau si nécessaire).Saupoudrer du cumin et de la coriandre moulue, augmenter le feu, et laisser l'huile remonter à la surface.Puis, verser l'eau safranée, la noix de muscade et le pandan, et laisser encore cuire 1 minute sur feu doux. Dresser dans un plat, rajouter un peu de yaourt sur le dessus (facultatif), décorer de coriandre et de gingembre. Servir immédiatement avec du riz basmati ou des naans.