Heat olive oil in a large pan over medium heat. Add diced onion and cook until softened and slightly golden.
Add garlic and cook for about 20 seconds until fragrant.
Add ground beef and cook until browned, breaking it apart with a wooden spoon.
Stir in the tomato paste and cook for about one minute.
Pour in the beef broth and simmer for a few minutes until slightly reduced.
Add tomato passata, beef stock, Worcestershire sauce, basil, oregano, and sugar. Season with salt and pepper.
Bring the sauce to a gentle simmer and cook for about 25 minutes until thickened.
Stir in grated parmesan and adjust seasoning if needed.
Meanwhile, cook spaghetti in salted boiling water until al dente.
Preheat oven to 180°C (350°F).
Slice the tops off the bread rolls and hollow out the centers to form bowls.
Mix melted butter, garlic, parsley, and parmesan in a small bowl.
Brush the inside and outside of each roll generously with the garlic butter mixture.
Transfer the cooked spaghetti directly into the sauce and toss to coat.
Fill each bread bowl with the spaghetti mixture.
Top with shredded mozzarella cheese.
Bake for 8–10 minutes until the bread becomes crispy and the cheese melts.
Garnish with fresh parsley and serve immediately.