Drain the chickpeas and rinse under the running water for a few times. Pressure cook the chickpeas with 2.5 cups water and salt, till it's cooked. Refer notes for details.
Heat oil / ghee in a wide and deep pan. Add crushed cardamom, cloves, star anise and bayleaf. Add chopped onion and cook till it browns.
Add crushed ginger and garlic and green chilli. Cook for 2-3 mins, till the raw smell goes.
Add kashmiri chilli, coriander, turmeric powders and garam masala / chicken masala. Fry for 2-3 mins, till the raw smell goes. Add 1 tbsp of hot water to bring together the masala.
Add pureed tomato and salt. Cook till it's done and oil starts appearing.
Add cooked chickpeas along with the stock (cooking water). Bring it to a boil and reduce flame to the lowest. Cover and cook for 7 - 8 mins.
Grind together grated coconut, soaked cashew nuts and poppy seeds (if using), fennel seeds with 2-3 tbsp water to a smooth paste.
Take the pan from the stove and add the coconut paste. Gently mix to incorporate the paste into the curry.
Bring the pan back to fire and cook for 3-4 mins. Add chopped coriander leaves. Let the curry rest for half an hour, before serving.
Notes
Poppy seeds is optional, if it's not available, skip that and continue with the recipe. Soak the cashew nuts and poppy seeds (if using) in 2 tbsp water for 10-15 mins.I pressure cook chickpeas on high flame for 6 - 8 whistles. Switch off the gas and let the pressure drops. I've used chicken masala for a meaty flavour, but you can use garam masala instead. You can add more water if you dont want a thick gravy. I recommend using ghee for this recipe.