Melt the butter in a large casserole dish with a lid. Add the onions and cook over a medium heat until they’re soft and caramelised, about 10-15 minutes. Scoop out then add the beef and cook it over a high heat until browned all over (you might need to do this in batches). Add back the onions then sprinkle over the flour, stir and continue cooking for another 2 minutes. Gradually add the stock stirring constantly until the mixture boils and thickens. Add all the remaining ingredients. Cover the pan and simmer over a low heat for 1½ hours or until the beef is tender.