Bring a large pot of water to a boil. Cook orzo in water until almost done, about 5 minutes. Drain and rinse with cold water. This will stop the orzo from cooking and becoming too soft. Set aside.
In a large soup pot or dutch oven, add olive oil and bring to medium heat. Once hot, add the carrots, celery and onion, cooking until the onions become translucent and vegetables soften, about 7 minutes. Add minced garlic and cook for additional minute.
Add thyme, oregano, salt, pepper and bay leaf. Stir to combine all the seasoning and cook 30 seconds. Slowly add the chicken broth, lemon zest and juice. Stir to combine.
Bring the chicken broth to a boil. Once boiling, reduce heat to medium-low and simmer for 10 minutes, covered.
Turn heat up to medium heat, add orzo and chicken. Cook for 5 minutes at a low boil, covered. This will give the orzo a chance to finish cooking and soften. Make sure to cover, or the pasta will absorb all the liquid. If that happens, just add some more chicken broth.
Lastly, add the baby spinach and Parmesan cheese. Turn heat off and cover for 3-5 minutes.
Ladle soup into bowls and enjoy!