In a large mixing bowl, combine the ground beef, breadcrumbs, Parmesan cheese, egg, minced garlic, Italian seasoning, salt, and pepper. Mix until well combined.
Shape the mixture into small meatballs, about 1 inch in diameter. You should have about 20-24 meatballs.
In a large pot over medium heat, heat the olive oil. Add the meatballs in batches, browning them on all sides (about 5-7 minutes). Remove the meatballs and set aside.
In the same pot, add the chopped onion, carrots, and celery. Cook for about 5 minutes or until the vegetables are softened.
Pour in the chicken broth and diced tomatoes, scraping the bottom of the pot to release any browned bits.
Return the meatballs to the pot and bring the mixture to a gentle simmer. Cook for about 15 minutes until the meatballs are cooked through.
Stir in the heavy cream and fresh spinach, allowing the soup to simmer for another 5 minutes. Adjust seasoning with salt and pepper.
Serve hot, garnished with fresh basil and additional Parmesan cheese.
Notes
Serve hot with fresh basil and extra Parmesan cheese for garnish.