Chop onion, mushrooms, spinach and crush garlic and put aside.
Peel and chop potatoes. Place in a saucepan with water and cook till soft and tender.
While the potatoes are cooking, heat oil in a large frying pan over medium heat.
Add the finely chopped onion, chopped mushrooms and crushed garlic and cook until the onion and mushrooms are tender.
Add the minced beef and turn the heat up to high, and brown. Remember to break up any lumps in the meat.
Add the flour and stir until well incorporated.
Add the balsamic vinegar, tomato paste, water, beef stock and spinach and stir through.
Reduce the heat down to low and simmer for 10 minutes or until the mixture is thick in consistancy
Place the meat mixture into a baking dish and set aside to cool a little before adding the potatoes.
Preheat your oven to 160°C or 320°F for fan-forced or 180°C or 356°F for conventional.
When the potatoes are ready, drain and mash. Feel free to add some butter and milk if you wish to.Add ½ cup of cheese to the potatoes and continue mashing until all the cheese is well incorporated into the potatoes. Place the mashed potatoes on top, and sprinkle the last ½ cup of cheese.
Place the baking dish into the oven uncovered and cook or 30 to 35 minutes, or until cheese is melted on top and going a golden brown.