Soak the rice in water for at least 2 hours.
Wash the chicken and dry thoroughly with paper towels. Remove any excess bits of fat or skin then make the marinade by combining the yogurt, garam masala, coriander, cinnamon, garlic ginger, salt and pepper in a bowl. Thoroughly coat the chicken with the marinade, cover and refrigerate for at least 2 hours.
Heat a pan over medium heat and add a generous splash of oil. Fry the onions and ginger along with a generous pinch of salt until the onions are are just starting to brown. Add the chilies and coconut and continue frying stirring constantly until the whole mixture is a nice golden brown. Taste and add additional salt to taste. Transfer to a bowl, scraping as much off the pan as you can.
Heat 3 qts of water along with the salt, cinnamon, cardamom, cloves and bay leaf until the water is boiling and has taken on a brown color from the spices. Drain the soaking rice and add to the boiling water. Cover with a lid and cook for 5 minutes, stirring once. Drain the rice and pick out the spices.
Heat a medium sauce pan that's big enough to fit all the chicken in a single layer over medium heat. Add a splash of oil and fry the chicken until brown on one side (6 to 7 minutes). Flip and brown the other side. Transfer the chicken to a plate and drain off any excess oil.
Add half the rice to the pan you fried the chicken in then spread the coconut/onion mixture over the rice. Cover with the rest of the rice and pour the coconut milk over the rice. Top with the chicken and any collected juices, cover the pot with a lid, and put over medium high heat. Once you hear the coconut milk boiling, turn the heat down to medium low and maintain a gentle simmer. Do not take the lid off while cooking as the trapped heat is necessary to cook the chicken. Simmer for about 20 minutes or until there is no liquid left.
To serve, plate the rice making sure to get the middle and bottom layers and top with a piece of chicken. Finish with a sprinkle of Thai basil and serve with chutney or sambal.