Heat the oil in a heavy saucepan, add the onion, carrot and mushrooms, and cook, stirring occasionally, until browned. Stir the lamb into the pan and continue to cook, stirring to break up the lumps, until lightly browned. Blend a few spoonfuls of the stock with the flour, then stir this mixture into the pan.
Pour in the remaining stock and bring to a simmer, stirring constantly. Add the bay leaf, Worcestershire sauce and tomato purée, then cover the pan and cook very gently for 1 hour, stirring occasionally. Remove the lid from the pan towards the end of cooking to allow any excess water to evaporate, if necessary, but do not let it boil dry or stick to the pan.
Preheat the oven to 190°C/375°F/Gas mark 5.
Mash the potatoes with the butter and milk, and season with salt and pepper. Season the mince mixture, then spoon into an ovenproof dish. Cover with an even layer of potato, and make a pattern on the top using the prongs of a fork.
Bake for 25 minutes until golden brown. Serve hot.