Mix the chicken, lime juice, salt and red chilli powder in a bowl and allow to marinate for 1 hour.
Roast the cloves, peppercorns, cinnamon, cardamom, bay leaves and almonds till they darken slightly and then grind into a coarse powder.
Mix the yoghurt, whole spice powder and all the other spices together and add them to the chicken. Allow to marinate for another hour.
Heat the oil in a pan and add the onions. Fry till golden brown and then add the ginger and garlic pastes and fry for a minute.
Add only the chicken from the chicken-spice mix and fry till sealed.
Now add the chicken stock and remaining part of the mix to the chicken.
Cook till the chicken is done and the gravy is reduced to half its original volume.