01 - Combine ground meat, breadcrumbs, Parmesan, egg, garlic, parsley, oregano, salt, and pepper in a large bowl. Mix gently until just incorporated. Form mixture into small meatballs approximately 1 inch in diameter and set aside on a plate.
02 - Heat 1 tablespoon olive oil in a large soup pot over medium heat. Add meatballs in batches without overcrowding, turning occasionally to brown on all sides. Meatballs should be browned but not fully cooked through. Transfer to a clean plate and repeat until all are browned.
03 - Add remaining 1 tablespoon olive oil to the same pot. Sauté diced onion, carrots, and celery for 5 minutes until softened and fragrant. Add minced garlic, dried basil, thyme, and red pepper flakes. Cook for 1 additional minute until garlic is aromatic.
04 - Pour in crushed tomatoes, broth, and add bay leaf. Bring mixture to a gentle simmer. Return browned meatballs to the pot. Cover and maintain a gentle simmer for 15 minutes to develop flavors and partially cook meatballs.
05 - Stir in small pasta and continue simmering uncovered for 10 minutes or until pasta reaches al dente texture and meatballs are completely cooked through. Stir occasionally to prevent pasta from sticking.
06 - Reduce heat to low setting. Remove and discard bay leaf. Gradually stir in heavy cream followed by chopped spinach. Cook for 2 to 3 minutes until spinach wilts and soup becomes creamy and well combined. Taste and adjust seasoning with salt and pepper as needed.
07 - Ladle hot soup into individual serving bowls. Generously top with freshly grated Parmesan cheese and chopped fresh herbs. Accompany with crusty bread if desired.