Place the onion, garlic, and ginger to a food processor and puree until smooth. Set aside.
In a large pan or skillet, add the 2 tablespoon ghee over medium-heat. Add beef and cook for about 2 minutes per or until beef is browned. Remove from skillet.
Return skillet to medium high heat and add the remaining ghee. Add the onion mixture and bay leaf. Cook for 3-5 minutes or until browned.
Add the garam masala, cumin, coriander, chili powder and tumeric, cooking for 30 seconds. Add the tomato paste and cook for another minute. Add browned beef and lemon juice, tossing to coat everything. Add beef broth and season with salt.
Bring to a simmer before transferring to a slow cooker. Cook on high for 4 hours or low for 8 hours. Once ready, stir in the cilantro. Serve with some rice or naan.
Notes
You can also use whole spices, but make sure you toast them before grinding them up.
If you like more spice, add Madras curry powder in ½ teaspoon increments.
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 cook so it gets tender.
Leftovers will store well in the fridge for 2-3 days in an air-tight container or be frozen for 3 months.