Remove the leaves and thick core from the head of cauliflower, and then rinse it. You can actually use some of the core in the soup, just make sure to remove the leaves.Coarsely chop the cauliflower (and core if using) and set it aside (coarsely chop means to just cut up the cauliflower in random sizes).Heat the olive oil in a large soup pot or Dutch Oven over medium heat.Once the oil is heated, add in the onion, garlic and 1 teaspoon sea salt.Cook until the onion is softened, but not browned, about 5-8 minutes.Once the onion has softened, add in the chopped cauliflower and chicken/veggie stock, and bring to a boil. You want to add enough chicken/veggie stock to cover the cauliflower.Reduce the heat to simmer, cover, and cook until the cauliflower is very soft and falling apart, about 15-20 minutes.Remove the soup from the heat and puree it using either a blender, or a hand held immersion blender. If you want to add in ¼ cup raw cashews, now is the time. Add the ¼ cup (no more as it can be overwhelming) raw cashews to the soup and puree until smooth and creamy! Tip: If you're using a blender, wipe the leftover pieces of onion and cauliflower out of the pan, so you have a nice clean pot for the pureed soup.Add the soup back to the pot and add in the parmesan cheese, if you're using it, and stir until smooth.Taste the soup and season with a bit more salt if needed. Please don't be afraid of using salt, (be sure to use unrefined celtic sea salt) as salt brings out the natural flavors! If you feel the soup's flavor is too bland for your liking then you can always add in some fresh lemon juice. It helps to liven up the flavor as well.Keep soup warm until ready to serve.Top each bowl with a bit of parmesan cheese (if using) and some freshly ground pepper. You can also top the soup with some roasted shiitake mushrooms! They're amazing!