Heat a large sauté pan over medium-high heat for 2 minutes. Add the butter and oil. Salt and pepper the beef cubes, and once the butter is sizzling, add the cubes in about 4 to 5 batches and brown well on all sides. Remove the cubes to a bowl and set aside.
Lower the heat, add the onions, and cook until softened, about 5 minutes. Add the garlic and cook for an additional minute. Sprinkle the flour over and stir until it is fully cooked, about 2 minutes.
Pour in the stock and brandy. Stir until the sauce thickens.
Add the bay leaf, olives, peri peri sauce and browned beef cubes, a long with any juices that may have accumulated in the bowl.
Bring to a boil, reduce the heat to low and simmer, covered, for 1 1/2 to 2 hours, until the meat is very tender.
Pour in the cream if using and let it heat through.