Saute the onion for the meatballs in a medium skillet with olive oil to soften, about 5 minutes. Stir in the garlic and set aside to cool slightly.
In a small bowl, mix the egg, parmesan cheese, bread crumbs, milk, parsley, Italian herbs, salt, and pepper until well blended and set aside to allow bread crumbs to absorb the liquid.
In a separate large bowl, mix the pork and Italian sausage to combine and then mix in the onions and egg mixture until well incorporated. Roll into bite-size meatballs (or use a small meatball scoop) and place on a parchment-lined rimmed baking sheet about an inch apart.
Broil on high in the oven (about 10 inches from the oven coil) for about 8 minutes or until cooked through.
In a soup pot, saute the onion for the soup in olive oil for 8 minutes to soften and caramelize (brown at the edges). Stir in the garlic, carrots, celery, mushrooms and continue to cook another 6-8 minutes until vegetables release liquid and begin to brown (add oil if the pan is too dry).
Stir in the beef stock, dry herbs, red pepper flakes, and meatballs to the pot with the vegetables and simmer 10 minutes to meld flavors. (Broth should just cover the contents, but more can be added, if desired.)
Stir in spinach, cream, parmesan cheese, and parsley. Allow to simmer 5 minutes to meld flavors. Taste and season with salt and pepper, as desired.
