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 been 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