Heat oil and ghee in a large frying pan over medium-high heat.
Add cardamom, cinnamon, bay leaf and fennel seeds. Stir fry for about 30 seconds.
Add onions. Sauté, stirring occasionally, for about 2-3 minutes or until browned.
Add garlic, ginger and green chilies. Sauté, stirring, for about 1 minute or until aromatic.
Add ground turmeric, ground cumin, red chili powder and ground coriander. Sauté, stirring, for about 1 minute or until fragrant.
Add tomato paste and canned tomatoes. Stir to combine. Cook, stirring, for about 2-3 minutes or until the tomatoes are mushy.
Add marinated meat and coriander (cilantro) leaves. Stir to combine. Season with salt.
Stir fry for about 10 minutes.
Add hot water. Stir.
Cook, covered, for about 1 and ½ hours or until the meat is tender. Add more hot water if needed.
Add garam masala, ground black pepper and dried fenugreek leaves. Stir. Heat through.
Serve with your favorite side - rice, naan or parathas.