Heat the oil in a large, heavy-based pot with a lid, then melt the butter until foaming. Add the cinnamon stick and cardamom pods, cooking them over medium heat for about one minute to release their essential oils.
Add the finely chopped onions to the pot and cook for approximately 5-6 minutes until they soften and turn slightly golden. Incorporate the minced garlic and grated ginger, cooking them together for another minute.
Stir in all of your dried spices including paprika, ground coriander, ground cumin, cinnamon, and cayenne pepper; continue cooking for an additional minute while stirring almost continuously. Pour in a quarter of the chicken stock, mix well, then add the diced chicken pieces ensuring they're well coated in spices.
Stir in both tomato paste and passata along with the remaining chicken stock before bringing everything to a gentle simmer; cover the pot with its lid and reduce heat to medium-low as you let it simmer for about 10 minutes until your chicken is thoroughly cooked through.
Remove the lid from your pot allowing excess moisture to evaporate; continue cooking for a few more minutes while stirring occasionally until you've achieved your desired sauce thickness.
Stir in garam masala along with natural yoghurt; let it simmer together for another 1-2 minutes allowing all those flavors meld beautifully before serving hot over basmati or cauliflower rice or alongside naan bread topped with extra yoghurt and fresh coriander if desired.