For the meatballs:
If making fresh, combine meatball ingredients in a large bowl and mix well.
Roll into 2" (golfball sized) balls.
Let chill 1 hour in refrigerator to set.
For the soup:
Add olive oil to pan or dutch oven, and heat on medium high until shimmery.
Add meatballs and brown on all sides, about 3-5 minutes per side (1-2 minutes if cooking pre-cooked/frozen meatballs).
When meatballs are lightly browned on all sides, remove from pan and set aside.
Add onions, garlic, carrots, mushrooms, and celery to pot or dutch oven.
Brown vegetables until soft, another 5-8 minutes.
Add stock, herbs, and meatballs to pot and increase heat to high.
Let stock reduce down by half.
Turn heat off and slowly add in cream, whisking as it is added.
Whisk vigorously to incorporate into soup.
Return heat to medium and whisk in parmesan cheese.
Let come to a rolling boil and thicken, another 2-4 minutes.
When soup is thickened, serve.