Marinade: Begin by jointing the whole chicken and removing the breasts (the breasts are not used in this recipe). Remove any remaining meat from the carcass and dice, reserve some of the skin. In a small bowl combine the garlic, yoghurt and salt then rub over the chicken pieces. Marinate for several hours for best results.
Stock: While the chicken is marinating, make a chicken stock by cutting the remaining carcass up into smaller pieces using a sharp knife. In a large saucepan over a medium heat add the reserved skin and allow some of the fat to render then remove the skin and discard.
Increase the heat and add the bones and brown. Add the cumin seeds, coriander seeds, garlic, ginger, curry leaves, bay leaf, cassia bark and fry down until fragrant, about 4 to 6 minutes. Add enough water to cover the bones, some coriander stalks and cover, reduce heat and simmer for an hour or so. Strain and separate the fat and set the stock aside.
Curry Paste: Make the curry paste by combining the onion, garlic, ginger and chilli in a food processor with 2 to 4 tablespoons of water. Pulse until a smooth paste forms.
The Curry: In a frying pan over a medium heat add the ghee then pour in the paste. Fry the paste until golden adding a little water occasionally as it reduces. Add the marinated chicken pieces and cook and stir to brown. When pan gets dry and oil begins to separate add the 1/2 sliced onion. Now add the ground cumin, coriander, curry powder, ground cloves, all spice, cassava bark, salt, turmeric and cook while stirring for several minutes.
Pour in the reserved stock, cover and cook over a medium heat for 45 to 60 minutes or until the chicken is no longer pink in the centre and the sauce has thickened and the oil has separated and is floating on top. Remove from the heat and serve.