Heat the oven to 375 F
Boil the potatoes until soft, drain. Place the milk and butter in the pan used to boil the potatoes, return to the heat and warm gently until the butter has melted. Add the potatoes and mash. Season to taste and set aside.
In a large deep skillet, over medium high heat, saute the onions and carrots in the oil for about 5 minutes or until tender. Add the garlic and cook for another minute.
Add the ground meat and one-third of the beef stock and cook, stirring constantly until all the meat is browned. Add the remaining stock, parsley and mushrooms, season with salt and pepper. Cover with a lid and cook for 15 minutes.
Mash the flour into the remaining 1 tbsp butter then add in small pieces to the ground meat sauce, stirring until all the flour has dissolved and the sauce has thickened slightly, approx 5 mins.
Place the meat sauce into a casserole dish and *spread* the mashed potatoes evenly over it. Sprinkle the grated cheese on top and bake for 30-35 mins until the surface is crisp and browned. Serve immediately.
*For a little nicer presentation, pipe the potatoes onto the meat mixture with a pastry bag.