Marinate the chicken: Mix together all the chicken, yogurt, tomato paste, oil, ginger, garlic, paprika, turmeric, cayenne, and garam masala. Marinate for 1 hour or overnight for best results.
Prep the Tandoori Roti: In a large bowl mix flour, sugar, baking powder, baking soda and salt until well combined. Add yogurt and start to knead the dough. Add water as needed and continue to knead for 5 minutes. Then add oil and knead until the dough turns smooth and soft. Cover with plastic wrap and rest for 1 hour. While resting, marinate the chicken and prep ingredients.
Prep the onions for the Biryani: Slice the onion per instruction above and pat dry. Leave out on a kitchen towel for 10 to 15 minutes to dry the onion slices out slightly. Heat oil in a pan on medium heat. Add the onions and fry for about 15 minutes, stirring occasionally, until they are a deep golden brown. (Be careful not to burn because that will add a bitter flavor to the biryani). Drain on a paper towel and set aside.
Prep the cilantro and mint per instruction above.
Cook the biryani and rice: Heat a heavy bottomed pot like a dutch oven on medium heat. Once hot, drizzle with oil and add the marinated chicken. Cook for 4 minutes and then turn the chicken pieces over. Cover with lid and cook for another 3 minutes.
Scatter half the browned onions and all of the cilantro and mint leaves over the chicken. Next add the rice, cardamom, bay leaf, clove, salt, butter, and broth. Cover and cook on low for about 20 minutes until the rice is tender and the chicken is cooked through. While cooking, make the tandoori roti.
Tandoori Roti: Heat a skillet on medium heat. After the dough has rested, knead again making sure the dough is soft. Evenly portion the dough into balls and dust with flour. Roll gently with a rolling pin, making sure the roti is slightly thick, about 1/4 inch. Then sprinkle a few droplets of water over the top and spread evenly.
Cook the Tandoori Roti: Transfer the roti water side down onto the heated skillet. Press gently so that the roti sticks to the pan. Cook for a minute or until the roti partially puffs up and the base browns. Then invert the entire skillet over the heat and cook until the top of the roti is cooked uniformly (or flip the roti over in the pan to cook the other side). (don't worry if there are some black spots appearing, it gives a tandoor effect).
Finish the Tandoori Roti: Scrape the roti off of the skillet and make sure the roti is cooked completely. Brush the top of the tandoori roti with butter while hot.
Finish the biryani and rice: Check that the rice is tender and the chicken has reached an internal temperature of 160 degrees using a thermometer. Once cooked, let the biryani rest for 5-10 minutes. Season with salt and pepper to taste. Remove the bay leaf before serving. Finish by scattering the remaining browned onions on top.
Serve: Enjoy the biryani with tandoori roti and coconut water.