1. For the meatballs: Remove stems from parsley and finely chop leaves. In a small bowl, beat egg.
2. In a large bowl, combine meat, parsley, Italian seasoning, garlic, onion powder, breadcrumbs, red pepper flakes, salt, pepper, and egg.
3. Using hands, mix until combined. Do not knead or overmix or meatballs will come out tough.
4. Using a 1 teaspoon measure, portion out meat and roll into mini meatballs.
5. When you are almost done rolling meatballs, heat olive oil in a large skillet over medium-high heat.
6. Place meatballs in a single layer in a skillet. You may need to do this in batches if your skillet isn’t large enough.
7. Brown meatballs on all sides; this should only take 2-3 minutes. Meatballs do not need to be cooked through at this point.
8. Remove meatballs to a paper towel-lined plate and set aside while you start the soup.
9. For the soup: Peel and cut carrots and onions into 1/2 inch dice. Cut celery into 1/2 inch dice. Roughly chop baby spinach.
10. Heat oil in large soup pot over medium heat.
11. Once oil is hot, add carrots, onions, and celery. Cook for 6-8 minutes until onions are translucent and veggies have softened a bit.
12. Add garlic and cook for 1 more minute.
13. Pour in chicken broth and season with salt and pepper. Turn heat to high and bring to a boil.
14. Once boiling, add in orzo and meatballs. Reduce heat to medium-low.
15. Cover and simmer for 10 minutes, until pasta is tender and meatballs are cooked through.
16. Add in spinach and cook for a couple more minutes, until spinach is wilted.
17. Serve soup hot, topped with a swirl of olive oil.
18. Leftover soup can be stored in an airtight container in the fridge for up to 5 days. This soup freezes beautifully, but leave out the pasta and cook fresh when reheating and serving soup. Allow soup to cool to room temperature before putting in storage container to freeze.