Add a drizzle of oil to a large deep pan over medium-high heat. Add the onion, carrot, mushrooms and garlic and sweat it all down until it softens and lightly colours. Add the beef and fry until fully browned, breaking it up with your wooden spoon as you go.
Pour in the wine and simmer for a few minutes to allow the beef to soak in the flavour. Stir in the beef stock, Worcestershire sauce, gravy granules, tomato puree, rosemary, thyme, bay leaf and a good pinch of salt & pepper. Bring to a simmer, then turn the heat to low and cook for 40-45 mins, or until the sauce reduces to a very thick gravy.
Once the liquid has reduced, check for seasoning, then pour the beef into a large baking dish. Leave to cool for at least 15 minutes, preferably until it forms a thin skin over the top (prevents mash sinking in).
Meanwhile, add the potatoes to a large pot of heavily salted cold water. Bring to a boil and cook until the potatoes are knife tender (10-15 mins). Drain and give them a shake, then leave them in the colander for 5 minutes to allow moisture to escape (watery potatoes = sloppy pie).
Add the potatoes back to the pot and mash with the butter, milk/cream and half of the cheese, then season to taste with nutmeg, salt and pepper. Don't hold back on the salt & pepper! I typically use at least 3/4 tsp salt and 1/4 tsp pepper. Preheat the oven to 200C/390F.
Dollop by dollop, gently place the mash on top of the beef, then sprinkle over the rest of the cheese. Place in the oven for 25-30 mins, or until golden and crispy on top. Leave to rest for 5-10 mins to retain shape, then tuck in and enjoy!