Begin by heating the rapeseed oil in a large casserole dish. Fry the meatballs for 5-6 minutes, turning to ensure they brown evenly. If necessary, cook the meatballs in two batches to prevent overcrowding. Once browned, remove them from the pan and set aside. Add the shallots to the pan and cook for 8-10 minutes, or until they begin to soften. Next, incorporate the garlic, bay leaves, oregano, cinnamon, and allspice, cooking for another 2 minutes. Pour in the red wine, allowing it to bubble for 1-2 minutes before adding the chopped tomatoes, red wine vinegar, and honey. Season to taste, then bring the mixture to a gentle simmer.
Return the browned meatballs to the pan, partially cover, and simmer for approximately 30 minutes, allowing the sauce to reduce and thicken.
While the stifado is simmering, prepare either orzo or rice according to the package instructions. Once cooked, drain and toss with butter.
Taste and adjust the seasoning of the beef stifado, then serve it alongside the buttery pasta or rice. Leftovers can be refrigerated for up to 3 days or frozen for longer storage.
For a gluten-free option, substitute the orzo with rice, and use olive oil instead of butter for a dairy-free version.