Soften the mirepoix Melt butter in a Dutch oven over medium heat. Add diced onion, carrots, and celery. Cook, stirring occasionally, for 5 minutes until the onion is softened and slightly translucent. Add minced garlic and stir for 60 seconds. This step builds a flavor base that raw vegetables simmered in water do not produce.
Add chicken and cold water Place bone in chicken thighs directly on top of the softened vegetables. Pour cold water and chicken broth over everything. The cold liquid start is important it brings out proteins gradually for cleaner broth. Add bay leaves, thyme, salt, and pepper.
Bring to simmer and skim Bring to a boil over medium-high heat. As it heats, foam will appear on the surface this is coagulated protein. Skim it off with a wide spoon during the first 8 to 10 minutes. Reduce heat to low and maintain a gentle simmer. Do not let it boil aggressively.
Simmer the chicken Simmer gently for 30 to 35 minutes until the chicken is cooked through and the meat pulls easily from the bone. Check internal temperature at the thickest part - 165F minimum.
Remove and shred chicken Remove chicken thighs to a cutting board. Remove and discard bay leaves. When cool enough to handle, remove and discard the skin and bones. Shred the chicken meat into bite-sized pieces using two forks.
Add noodles or rice (optional)If adding egg noodles, return broth to a simmer and add noodles now - cook for 8 minutes. If adding rice, add it 20 minutes before the chicken was done. Skip this step for classic broth-based homemade chicken soup.
Return chicken and finish Return shredded chicken to the pot. Simmer for 5 minutes. Taste the broth and adjust salt - this is the most important moment of the whole recipe. The broth should taste fully seasoned, not flat. Add more salt in small increments until it does.
Add parsley and serve Remove from heat. Stir in fresh parsley. Serve homemade chicken soup immediately in wide bowls with crusty bread or oyster crackers alongside.