Sauté the aromatics: Warm the olive oil in a large pot over medium heat.
Add onion, carrots, and celery with a pinch of salt. Cook 5–7 minutes, stirring, until softened and lightly golden. Stir in the garlic and cook 30 seconds until fragrant.
Season the base: Add thyme, smoked paprika, and red pepper flakes.
Stir to toast the spices for 30 seconds. If using, drop in the Parmesan rind.
Add broth and beans: Pour in the chicken broth and add the white beans and bay leaf. Bring to a gentle simmer.
Poach the chicken: Submerge the chicken breasts or thighs in the simmering soup.
Keep the heat low to maintain a gentle bubble. Cook 12–18 minutes, depending on thickness, until the chicken is just cooked through.
Shred the chicken: Transfer chicken to a cutting board. Shred with two forks into bite-size pieces.
Return shredded chicken and any juices to the pot.
Add greens (optional): Stir in spinach or kale and simmer 2–3 minutes until tender.
Brighten and finish: Remove the bay leaf (and Parmesan rind if used). Add lemon zest and juice. Stir in chopped parsley.
Taste and season with salt and black pepper until the flavors pop.
Serve: Ladle into bowls. Finish with a drizzle of olive oil or a sprinkle of Parmesan if you like. Crusty bread on the side never hurts.