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.
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 / 125ml wine and allow to reduce for a few mins. Add back in your lamb and stir to combine.
Pour in 2.5 cups / 375ml Beef stock then add 2 tbsp Worcestershire sauce, 2 tbsp gravy granules, 2 bay leaves, 1 tsp rosemary, 1/2 tsp thyme and salt & pepper to taste. Allow to simmer for 35-45mins or until thickened.
Meanwhile, boil your potatoes in salted water until knife tender. Drain and mash in 4 tbsp butter. Once lump free, stir in 1/2 cup / 125ml cream and season to taste with nutmeg, salt and pepper.
Pour your lamb into the baking dish, then top with your 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 5mins (just to retain shape) then serve up!