In a large saucepan, heat the oil over medium-high heat. Once your oil is hot, brown the beef. Do it in 2 batches if you need to, to allow an even browning on all pieces. Set aside.
In the same pan, fry the onion, garlic, carrots and celery, about 3-5 minutes, before adding the meat back.
Pour in the stock, Guinness, and bay leaf and season to taste. Add the chocolate if you find it too bitter.
Bring to a boil then lower the heat and simmer for about 1½ hours, or until the liquid has reduced. If the sauce isn’t thick enough, remove the meat and carrots from the pan using a slotted spoon. In a small bowl, mix a few tablespoons of sauce with 1 tbsp corn flour, whisk until well combined and pour back into the sauce. Let boil for about 10-15 minutes, until the sauce has thickened, then tip back the meat.