Make the meatball mixture. In a large bowl, combine ground beef (or turkey), sausage, egg, breadcrumbs, parmesan cheese, garlic, fresh parsley, Italian seasoning, salt, and pepper. Gently toss with hands until all ingredients are evenly distributed.
Form the meatballs. Roll the mixture into tablespoon-size meatballs and transfer to a large plate.
Brown the meatballs. In a large skillet, heat the olive oil over medium high heat. Add half of the meatballs and cook for 4 to 5 minutes until browned on all sides, turning occasionally. They don’t have to be cooked all the way through because they will finish cooking in the soup. Transfer cooked meatballs to a plate lined with paper towels. Repeat the process with remaining meatballs.
Cook the veggies. In a large pot, heat 1 tablespoon of olive oil over medium high heat. Add onion, carrots, celery, and red pepper. Cook for 5 minutes, or until veggies have softened. Add garlic and cook for one more minute.
Assemble soup. Poor in the broth and fire roasted tomatoes bring to a boil. Season soup with Italian seasoning, bay leaf, salt, and pepper, to taste. Add in the orzo and meatballs, reduce the heat to low.
Simmer. Cover the pot with a lid and cook for about 10 minutes or until pasta is tender and meatballs are cooked through.
Add spinach and parmesan. Stir in spinach, parmesan cheese, and crushed red pepper flakes. Cook for one more minute. Remove the bay leaf.
Serve. Ladle the soup into bowls and garnish with freshly grated parmesan cheese, if desired. Enjoy!