Heat the olive oil in a large pot over a medium flame. Bundle the rosemary and sage together and tie with kitchen twine. When the oil is hot, add the herb bundle and sizzle for a few minutes on both sides to infuse the oil.
Add the onion, garlic, salt and pepper and cook for 5 minutes, until the onion is soft and translucent but not brown. Turn the flame to high and add the swiss brown, white mushrooms and shitakes.
Cook for 10 minutes, during which the mushrooms will give off their liquid (which should evaporate quickly due to the high heat) and deflate significantly. Stir occasionally. Add the chicken stock.
Simmer for 30 minutes. Remove the herbs, then add the cream and butter. Working in batches, puree the soup in a blender until smooth. Return to the pot and keep at a very low simmer until ready to serve.