Ingredients
Equipment
Method
Prepare the Meatballs
- In a large mixing bowl, combine ground beef, Panko breadcrumbs, egg, grated Parmesan, chopped fresh parsley, garlic powder, onion powder, Italian seasoning, milk, salt, and black pepper. Mix gently until just combined, being careful not to overmix.
- Roll the mixture into 1-inch meatballs (approximately 20-24 meatballs).
- To bake: Preheat oven to 400°F (200°C). Arrange meatballs on a lightly greased baking sheet and bake for 12-15 minutes, or until browned and cooked through. To air fry: Preheat air fryer to 375°F (190°C). Cook in batches for 8-10 minutes, shaking basket halfway, until browned. Set aside.
Assemble the Soup
- While meatballs cook, heat olive oil in a large Dutch oven or soup pot over medium heat. Add diced onion, carrots, and celery. Sauté for 5-7 minutes until softened.
- Add minced garlic and tomato paste to the pot. Cook for 1-2 minutes, stirring constantly, until fragrant.
- Pour in diced tomatoes (undrained) and beef or chicken broth. Add Italian seasoning and bay leaf. Bring the soup to a gentle simmer, then reduce heat to low, cover, and let it simmer for 15 minutes to allow flavors to meld.
- Increase heat to medium-low, add orzo pasta, and cook for 8-10 minutes, or according to package directions, until al dente.
- Stir in the cooked meatballs and fresh spinach. Cook for another 2-3 minutes, until the spinach has wilted and the meatballs are heated through.
- Remove the bay leaf. Taste and adjust seasoning with salt and pepper as needed.
- Ladle hot soup into bowls. Garnish with fresh chopped parsley and extra grated Parmesan cheese, if desired. Serve immediately.
Notes
For a spicier kick, add a pinch of red pepper flakes with the garlic. This soup can be made ahead; store in an airtight container in the refrigerator for up to 3-4 days. The orzo may absorb more liquid over time, so you might need to add a splash more broth when reheating.
