Heat olive oil in a large Dutch oven or soup pot over medium heat. Add the diced onion, carrots, and celery. Cook for 5-7 minutes until vegetables begin to soften but not brown.
Add minced garlic and cook for another 30 seconds until fragrant.
Sprinkle in the dried oregano, basil, thyme, and red pepper flakes, stirring to coat the vegetables in the spices.
Pour in the chicken broth and add diced tomatoes with their juices. Drop in the bay leaves and season with a pinch of salt and freshly ground black pepper. Bring the mixture to a gentle boil.
Gently add the whole chicken breasts to the simmering broth. Reduce heat to maintain a gentle simmer, cover, and cook for about 15-20 minutes until the chicken is cooked through and registers 165°F on an instant-read thermometer.
Remove the cooked chicken from the pot and place it on a cutting board. Using two forks, shred the chicken into bite-sized pieces.
Meanwhile, bring the soup back to a boil and add the pasta. Cook according to package directions, usually 8-10 minutes, until just al dente.
When the pasta is almost done, add the cannellini beans and shredded chicken back to the pot. Simmer for 2-3 minutes to heat through.
Stir in the chopped spinach and fresh herbs, allowing them to wilt from the residual heat.
Remove from heat, add the fresh lemon juice, and taste for seasoning, adjusting salt and pepper as needed.
Serve hot in bowls with a sprinkle of freshly grated Parmesan cheese on top.