Crumble saffron into a small bowl, add the milk and leave to steep
Place the coriander seeds, salt and peppercorns into a pestle and mortar and crush
Add the roughly chopped ginger and garlic and pound to create an aromatic paste.
Place the chicken into a large bowl and add the yoghurt, gram flour, turmeric and the paste from the pestle and mortar. Stir thoroughly, cover and leave to marinade for an hour or longer if possible.
Heat oil or ghee in a pan and add the cloves, cardamom pods, cassia and the dried red chillies and fry for a few minutes until fragrant.
Add the minced onions and fry gently on a medium heat for about 10 minutes, until they just begin to brown.
Add chicken and stir-fry for about 5 minutes on a medium heat, stirring occasionally.
Place the lid on the pan, reduce the heat and leave to cook for about 15-20 minutes.
Pour in the creamed coconut, with the ground almonds and poppy seeds then stir to thicken.
Increase the heat and simmer until the chicken is tender and the sauce has thickened to the consistency you want. Pour in the saffron milk for added decadence and remove the pan from the heat.
Garnish with the garam masala and fresh coriander. You can also add a squeeze of lemon juice for added freshness, then serve.