01 - Heat olive oil in a large pot over medium heat. Add onion, celery, and carrots. Sauté for 5 minutes until softened.
02 - Add minced garlic and cook for 1 minute until fragrant, stirring constantly to prevent burning.
03 - Stir in diced ham and potatoes. Cook for 2 minutes, stirring occasionally to begin developing flavors.
04 - Sprinkle flour evenly over the mixture, stirring well to coat all vegetables and ham. Cook for 1 minute to remove raw flour taste.
05 - Gradually pour in chicken broth while stirring continuously to prevent lumps. Add thyme, salt, and pepper. Bring to a gentle boil.
06 - Reduce heat to low, cover, and simmer for 15 minutes until potatoes are fork-tender. Stir occasionally to prevent sticking.
07 - Stir in milk and half-and-half. Heat through for 3 to 5 minutes without boiling, stirring often. The chowder should steam but not reach a rolling boil.
08 - Taste and adjust seasoning as needed. Ladle into bowls, garnish with fresh parsley, and serve hot.