Heat the butter on a low heat on the stove top. Add the chopped onions and carrots. Season really well, stir to combine and leave to sweat for 10 minutes.
Take the carrots and onions and put them into a dish and set to one side.
Add the Olive oil to the pan and heat on a high heat. The oil should be very hot. We don’t want actual flames, but smoking hot is fine!
All the ground beef and spread out around the pan. Then leave it, unstirred for several minutes. The meat should be browned really well, we’re looking for dark brown (burnt bits all fine!), not beige. After a few minutes, turn the meat and repeat on the uncooked side. Browning the meat takes a good 7-8 minutes.
Add the onions and carrots back into the ground beef pan and combine, and turn the heat down to low again.
Add the tomato puree, stock, water and milk. Stir to combine.
Bring the sauce to a low simmer.
Add your spaghetti into the pan. Break it up as you add it, you want the spaghetti to be completely submerged in the sauce.
Add more water if you need to. The pasta will absorb a lot of the sauce liquid, so add more water if there’s not enough liquid to submerge the pasta fully.
Simmer for 20 minutes, stirring occasionally.
After 20 minutes, turn the heat off, give the pot a stir and then cover the pan with a lid. Leave the pan for 30 minutes minimum, not taking the lid off. The lid keeps the heat in the pan, and it’s this step that makes the pasta soft.
The spaghetti will sit for several hours, just waiting to be served. Stir the pot before serving and add your parmesan.
