Heat 1 tbsp of the oil in a pressure cooker. Season the beef and fry in batches for 5-8 mins, turning occasionally until evenly browned. Set aside on a plate.
Heat the remaining oil and butter in the pan and fry the onion gently for 10 mins or until golden brown and caramelised. Add the garlic, ginger, chilli, turmeric, coriander and cardamom and fry for 2 mins. Stir in the beef and cook for 1 min to coat the beef in the spices.
Tip in the tomatoes, stock and sugar and bring to a simmer. Lock the lid onto the cooker and bring up to high pressure. Cook for 15 mins, then turn off the heat and let the pressure drop naturally. Give everything a good stir and add more water if the sauce is already thick.
Lock the lid back in place and give it another 10 mins, then let the pressure drop naturally. Check the meat is tender – depending on the cut it might need 5 mins more.
Take it off the heat, stir through the garam masala and cream, if you like. Season to taste. Scatter over the coriander and serve with naan bread or rice.