Place the chicken in a bowl with the marinade ingredients, stir together and cover. Leave to marinate for 1-4 hours (up to overnight).
Place the roughly chopped onion and the 4 garlic cloves into a food processor and blend until smooth (if you prefer fresh ginger, add the ginger here into the food processor).
Heat the butter and oil in a large frying pan over a medium-high heat.
Add the minced onion, garlic and ginger to the pan and cook for 5-6 minutes, stirring occasionally until the onion starts to brown at the edges of the pan.
Add the marinated chicken to the pan and cook for 3-4 minutes until sealed.
Add the salt, garam masala, curry powder, paprika and cinnamon. Stir and cook for 1-2 minutes, until the spices start to release their fragrance.
Add the stock, passata, tomato puree, sugar and cardamom. Tip: Sew the pods together with a piece of string so you can easily fish them out later.
Bring to the soft boil and simmer for 15 minutes.
Remove the cardamom then stir in the cream and allow to heat through.
Serve over basmati rice, sprinkled with some freshly chopped coriander