In a large pot over medium heat, bring about 2 quarts lightly salted water to a boil. Add macaroni and cook for about 1 to 2 minutes less than package's directions. Rinse under cold, running water and drain well. Set aside.
In small, heavy-bottomed pot, arrange chicken breasts in a single layer. Add water, quartered onions, smashed garlic cloves, bay leaf, salt, and peppercorns.
Bring to a boil, skimming scum that floats on top. Lower heat, cover, and cook in a barely a simmer for about 10 to 15 minutes or until thermometer inserted in the thickest part of chicken reads 165 F.
With a slotted spoon, remove chicken from heat and allow to cool to touch. Coarsely shred chicken and keep warm.
Using a fine-mesh sieve, strain liquid. Discard aromatics and reserve broth.
In a large pot over medium heat, heat butter. When it begins to melt, add onions, garlic, celery, and carrots. Cook, stirring occasionally until softened.
Add flour and cook, stirring regularly, for about 1 to 2 minutes.
Add reserved broth, whisking vigorously to prevent lumps.
Add chicken and continue to cook until chicken is heated through, vegetables are tender, and the soup slightly thickens.
Add heavy cream and bring to a simmer for about 1 to 2 minutes.
Add macaroni and cook for about 1 to 2 minutes or until heated through.
Season with salt and pepper to taste. Serve hot.