Pat the chicken dry with paper towels. Season both sides with salt, black pepper, paprika, and garlic powder.
Heat olive oil in a large skillet over medium-high heat. Add the chicken and sear for 3–4 minutes per side, until lightly golden. The chicken does not need to be fully cooked yet. Remove it from the skillet and set aside.
In the same skillet, add the butter, onion, carrots, and celery. Cook for about 8–10 minutes, stirring often, until the vegetables soften and pick up flavor from the skillet.
Add the garlic and cook for about 30 seconds, just until fragrant.
Sprinkle the flour over the vegetables and stir well until everything is coated. Cook for 1 minute to remove the raw flour taste.
Transfer the vegetables to a large soup pot. Slowly pour in the chicken broth while stirring.
Add the potatoes, Italian seasoning, thyme, bay leaf, 1 teaspoon salt, and 1/3 teaspoon black pepper. Return the seared chicken to the pot.
Bring the soup to a gentle boil, then reduce the heat to low. Cover and simmer for 20–25 minutes, or until the chicken is cooked through and the potatoes are tender.
Remove the chicken from the pot and shred it with two forks. Return the shredded chicken to the soup.
Stir in the heavy cream and Parmesan cheese, if using. Simmer gently for 3–5 minutes. Do not let the soup boil hard after adding the cream.
Remove the bay leaf. Stir in fresh parsley and lemon juice, if using. Taste and adjust the salt and black pepper before serving.