In a large pot over medium heat, drizzle in the olive oil and then scatter in the diced onions and ground beef. Use a spatula or a wooden spoon to break up the beef and cook until it is all browned.
Once the beef is browned add in the garlic, crushed tomato, tomato purée, herbs, paprika, pepper, and Worcestershire sauce. Give it a good stir and let it cook together for 5 minutes.
Pour in the macaroni and the beef stock; stir again and cook for 5-8 minutes until the sauce is boiling, then turn down your heat to low, close the lid of the pot, and let it simmer for 15-20 minutes until all the water has absorbed and the pasta is cooked.
Take off the heat and stir in ¾ of the cheddar. Taste it to see if the dish needs some salt, and then top with the rest of the cheddar and the Parmesan and serve.