Heat the oil and butter in a Dutch oven or heavy pot. Fry the beef until nicely browned on all sides. Transfer to a plate and set aside.
Saute the onions for 25 minutes until caramelized. Add the garlic and ginger and saute for 3 minutes. Add the spices, except for the bay leaf and cardamom pods, and saute for another minutes.
Add the tomato paste and the tomatoes and deglaze the bottom of the pan, scraping up any of the browned bits. Cook for 5 minutes. Stir in the yogurt.
Add the beef cubes, beef broth, bay leaf, cardamom pods and salt. Bring to a simmer, reduce the heat to low, cover and cook for 1 hour, stirring occasionally. Add the spinach and cook for another 30 minutes, stirring occasionally.
Add salt to taste. Serve with steamed Basmati rice.
Recipe by The Daring Gourmet at https://www.daringgourmet.com/saag-gosht-punjabi-beef-and-spinach-curry/