Season the beef: Pat the beef dry and season generously with salt and pepper.
Drying helps it sear well.
Sear for flavor: Heat oil in a large skillet over medium-high. Sear the beef in batches until browned on two sides, about 2 to 3 minutes per batch. Transfer to the slow cooker.
Soften aromatics: In the same skillet, add onion with a pinch of salt.
Cook 3 to 4 minutes until translucent. Stir in garlic and ginger for 30 seconds, just until fragrant.
Bloom the spices: Add curry powder, cumin, coriander, turmeric, paprika, and chili to the skillet. Stir for 30 to 45 seconds to toast lightly.
Build the sauce: Stir in tomato paste and cook 1 minute.
Add crushed tomatoes and broth, scraping up any browned bits. Simmer 2 minutes, then pour over the beef in the slow cooker.
Add coconut milk and aromatics: Stir in coconut milk, brown sugar (if using), cinnamon stick, and bay leaf. Add optional vegetables now, except peas.
Slow cook: Cover and cook on Low for 7 to 8 hours or High for 4 to 5 hours, until the beef is fork-tender.
Finish and balance: Remove the cinnamon stick and bay leaf.
Stir in lime juice. If using peas, add them now and let them warm through for 5 minutes. Adjust salt, pepper, and heat.
Serve: Spoon over steamed rice, coconut rice, or cauliflower rice.
Garnish with fresh cilantro and extra lime wedges. Naan on the side is never a bad idea.