Peel and cut the potatoes.
Using a large heavy sauce or stock pan, place the potatoes in stock or water to generously cover, and bring to boiling. Reduce heat and simmer until tender when speared with a knife.
While the potatoes cook, finely chop the garlic and onion, set aside.
Peel the carrots and cut into somewhat chunky, but bite sized for soup, about a half inch at most. Heat a sauté pan over fairly high heat and using the oil or fat, add the carrots first.
Keep that pan hot, and don’t stir too much. Let those carrots get a little bit of color. When the carrots are showing color pretty much all around, add the chopped onion, reducing the heat a bit, and continuing to cook until the onions are becoming golden brown.
Add the garlic and cook, stirring for a minute or so more. Add a little of the cooking liquid from the potatoes to slow things down and deglaze the pan.
Return to the now boiled potatoes and using a masher for a more rustic texture, or a potato ricer for a very smooth texture, mash the potatoes.
Once the potatoes are acceptably mashed (I honestly, leave them a bit chunky) or riced and returned to the pan, add everything from the sauté pan straight into the soup.
Place the pot over medium low heat, add the cream, and then add the remaining stock, as needed to achieve a velvety consistency. Stir regularly.
Allow 20-30 minutes cooking (stirring regularly) for flavors to meld. Season with salt and a light sprinkling of black pepper.
When near ready to serve: Appropriately clean and sauté, or grill the mushrooms, then cut into bite size pieces. Roughly slice the spinach. Use generously sized bowls, and add a handful of the spinach, and then some of the mushrooms, right to the bowl.
Ladle in the hot soup, and serve.
