Slice the chicken into bite-sized pieces.
In a large bowl, combine the yogurt, 1/2 tbsp ginger garlic paste, 1/2 tbsp garam masala, Kashmiri powder, salt, and pepper.
Coat the chicken with the yogurt mixture and set aside.
Warm up 1 tbsp of butter and oil in a large skillet.
Cook the chicken 2 minutes on each side.
Remove the chicken from the skillet and set aside.
Add the cumin seeds, mustard seeds, cinnamon stick, and bay leave.
Cook for 1-2 minutes or until the seeds start to pop.
Add the remaining garam masala and cook for an additional 15 seconds.
Add the onions and cook for an additional 2-3 minutes or until the onions are translucent.
Stir in the remaining ginger garlic paste and cook for an additional 15 seconds.
Add the crushed tomatoes and cook for 5 minutes.
Discard the cinnamon stick and bay leave.
Blend the tomato mixture until smooth.
Place the tomato mixture back in the skillet.
Season with salt and pepper.
Add the heavy cream and remaining butter.
Add the chicken, cover, and cook for 10 minutes or until the chicken is fully cooked through.