Heat the olive oil in a large casserole dish over medium-high heat. Add the beef and brown on all sides; about 5 minutes. Brown in batches if necessary so as not to overcrowd the pan. Remove the beef from the casserole dish and set aside.
Add the shallots and garlic to the casserole dish and cook until slightly soft and golden; about 3 to 5 minutes.
Add the beef back to the casserole dish trying to get the beef to the bottom with most of the shallots on top. Add the tomato puree or passata, water and seasoning.
Cover and reduce heat to medium-low. Simmer without stirring for 75 minutes; uncovering the last 15 minutes to ensure all excess water evaporates. Shake the casserole dish occasionally to prevent sticking but avoid stirring so the onions don't fall apart.