Caramelize the onions - in a large pot over medium-high heat, add in 2 tbsp butter. Once it has melted, add in the sliced onions. Stir to cook the onions evenly (add more oil if the onions start burning or sticking). Continue to stir fry until onions become golden, about 10-15 minutes.
Add in garlic and carrots. Stir everything together for a minute.
Add in the beef stock and water. Once it comes to a boil, add in the curry blocks. Mix to combine. Add in the soy sauce, ketchup, and bulldog sauce. Cover and turn the heat to low to let it simmer for 10 minutes.
Turn the heat off and finish with the remaining 1 tbsp of butter to make the sauce smooth and glossy. Cover with the lid to let it rest (you can also make this the day before and refrigerate overnight for the flavours to deepen).