Add a drizzle of olive oil to a large skillet/pot over medium heat and add your lamb. Break up with a wooden spoon until it begins to brown, then season with salt & pepper. Continue to fry until completely browned and the liquid (if any) has disappeared. Pour into your baking dish and place to one side.
Add more oil as needed to the skillet/pot then add your onion, celery and carrot. Fry until they begin to soften and brown, then add your garlic. Fry for a minute longer, then stir in 2 tbsp tomato puree. Deglaze with 1/2cup / 120ml wine and allow to reduce for a couple of mins. Add back in your lamb and stir to combine.
Pour in 2.5 cups / 625ml Beef stock then add 2 tbsp Worcestershire sauce, 2 heaped tbsp gravy granules, 2 bay leaves, 1 tsp rosemary, 1/2 tsp thyme and salt & pepper to taste. Allow to gently simmer for 40-45mins or until the liquid reduces is thickens. Check for seasoning, then pour 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). Mash in the pot with butter, cream, nutmeg and generous helpings of salt and pepper (consider 1 tsp salt and 1/2 tsp pepper). Preheat the oven to 200C/390F.
Gently top with the lamb with the mash. I recommend doing this in large spoonfuls dollop by dollop, working from the outside in. This is just so the lamb stays in an even layer and doesn't clump to one end. Top with parmesan, pop the baking dish on a tray and place in the oven at 390F/200C for 20-25mins, or until golden on top and bubbling round the edges.
Let it sit for 5-10mins (just to retain shape) then serve up!