Place the chicken in a large bowl. Season all over with salt and pepper. Add the garlic, parmesan, breadcrumbs and herbs. Mix gently until just combined. Roll the mixture into 1-inch meatballs.
Heat the olive oil in a large stock pot over medium heat. Add the meatballs in a single layer and brown for 3 to 4 minutes. Flip gently and brown the other side for another 3 to 4 minutes. Shake the pan, tossing the meatballs around. Transfer them to a plate to start the soup in the same pot!
Add the butter to the pot, along with the onions, carrots, celery, garlic and a big pinch of salt and pepper. Cook until softened, about 6 to 8 minutes. Add in 7 cups of chicken stock and the parmesan rind. Add in the meatballs. Bring the mixture to a boil, then reduce it to a simmer. If you have the time, you can cover it and simmer for 10 to 20 minutes to develop the flavor more. If not, move to the orzo step!
Stir in the orzo pasta. Cook uncovered, stirring occasionally, until the pasta is al dente, about 8 minutes.
Add a spritz of lemon to the pot and stir. Serve the soup topped with fresh parsley.
Note: if you want to make this ahead of time for meal prep, cook the orzo separately according to package directions. Store it separately in the fridge. Combine orzo and soup in a pot when heating! There will be more broth this way, but it’s still delicious.