Melt butter in a stock pot over medium-high heat; add onion and saute until tender, 3 to 4 minutes. Whisk in flour and continue to stir until mixture turns golden brown, about 5 minutes. Slowly add half-and-half to onion mixture, stirring until mixture is smooth. Add chicken broth; season with salt and ground black pepper.
Reduce heat to medium-low and simmer mixture until thickened, about 10 minutes. Add broccoli, carrot, and celery. Simmer until vegetables are tender yet crisp, about 20 minutes.
Reduce heat to low. Add Cheddar cheese to soup and cook, stirring occasionally, until cheese melts, about 5 minutes.