Make the sauce by adding the onion, jalapeño, garlic, ginger, cilantro and broth to a food processor and puree until smooth. Set aside.
In a large Dutch oven, add 1 tablespoon butter over medium heat. Add the sliced onions and cook until caramelized, about 15 minutes. Add the raisins, stirring to combine. Remove from the pan.
Return pan to medium high heat and add the remaining butter. Add the beef, cooking until browned on all sides, about 5 minutes. Remove from the pan.
Add the sauce to the pan and bring to a simmer. Stir in the cumin, garam masala, coriander, paprika, cardamom, salt, tumeric and cinnamon. Add in the yogurt and ½ cup of beef broth. Add the beef back in. Cover and simmer for 1 hour.
While beef is simmering make the rice. Heat 3 cups of beef broth to a low boil in a medium saucepan. Add the rice, cover and simmer for 5 minutes. It should still be raw. Drain the liquid and set aside.
Preheat the oven to 350°F. Spoon the rice over top the beef mixture before adding the caramelized onions. Cover and bake for 30 minutes. Let sit for 10 minutes before mixing and fluffing with a fork. Top with some cilantro and serve with naan.
Notes
If you like more spice, keep the seeds from the jalapeño.
If you can't find/use fresh ginger, replace it with just ⅓ teaspoon dried ginger as it is much more concentrated.
Make sure you give the beef enough time to simmer so it gets tender. If liquid is evaporating too quickly, add a small amount of broth.
Make sure the rice is parboiled as it will finish cooking in the oven.
Leftovers will store well in the fridge for 2-3 days in an air-tight container or be frozen for 3 months.