In a small bowl, soak the saffron strands in 2 tbsp of warm water. Set it aside to infuse.
In a large mixing bowl, combine the yogurt, ginger-garlic paste, ground cumin, ground coriander, ground turmeric, red chili powder, and salt. Mix well to form a marinade.
Add the chicken pieces to the marinade, ensuring they are well coated. Cover the bowl with plastic wrap and let it marinate in the refrigerator for at least 1 hour.
In a heavy-bottomed pan, heat the cooking oil or ghee over medium heat. Add the chopped onion and sauté until it turns golden brown.
Add the green cardamom pods, cinnamon stick, and cloves to the pan. Sauté for another minute to release their flavours.
Add the marinated chicken along with the marinade to the pan. Cook on medium-high heat for about 10 minutes, stirring occasionally.
Reduce the heat to low, cover the pan, and let the chicken simmer for about 20-25 minutes or until it's cooked through and tender. Stir occasionally to prevent sticking.
While the chicken is cooking, add the soaked saffron (along with the water it was soaked in) to the pan. Mix gently to distribute the saffron colour and flavour.
Once the chicken is cooked, check for seasoning and adjust salt and spice levels if needed.
Garnish the Chicken Zafrani with chopped cilantro leaves.
Serve the Chicken Zafrani hot with naan, rice, or your choice of bread.