Heat olive oil in a large pot over medium heat.
Add diced onion, garlic, carrots, and celery. Sauté until vegetables are softened, about 5 minutes.
Season chicken with salt, black pepper, smoked paprika, oregano, and cumin.
Add the chicken to the pot and cook for 2-3 minutes on each side until lightly browned.
Pour in the chicken broth and diced tomatoes.
Stir in the white beans, bay leaf, and red pepper flakes (if using).
Bring to a boil, then reduce heat and let simmer for 45 minutes.
Remove the chicken, shred it with two forks, and return it to the pot.
Simmer for an additional 10 minutes to allow flavors to meld.
Stir in fresh parsley or cilantro and lemon juice before serving.
Serve hot, optionally with crusty bread or a side salad.