Pat beef cubes dry with paper towels and season with salt and pepper. Heat 1 tablespoon olive oil in a large Dutch oven over medium-high heat. Brown beef in batches, about 3-4 minutes per side. Transfer to a plate and set aside.
Add remaining oil to the pot. Add diced onions and cook for 6-8 minutes until golden and caramelized. Add garlic and ginger, cooking for another minute until fragrant.
Add curry powder and garam masala to the pot, stirring constantly for 30 seconds to bloom the spices. Add tomato paste and cook for 1 minute, stirring to combine.
Gradually whisk in the beef broth, scraping up any browned bits from the bottom of the pot. Return the browned beef to the pot along with any accumulated juices.
Bring the mixture to a boil, then reduce heat to low. Cover and simmer for 45 minutes, stirring occasionally.
Add the carrots and potatoes to the pot. Continue to simmer, covered, for another 30-40 minutes until the beef is tender and vegetables are cooked through.
Stir in honey, soy sauce, and dark chocolate (or cocoa powder). Simmer uncovered for 5-10 minutes to allow flavors to meld and sauce to reduce slightly.
If you prefer a thicker curry, mix cornstarch with 2 tablespoons cold water and stir into the curry. Simmer for 2-3 minutes until thickened.
Taste and adjust seasoning with salt and pepper. Serve hot over brown rice, garnished with fresh herbs if desired.
Notes
Storage tip: Keeps in refrigerator for up to 4 days and freezes well for up to 3 months. Reheat gently and add broth if needed to adjust consistency. For a lighter version, use lean sirloin and reduce cooking time accordingly.