In a large pot, melt 3 tablespoons of butter over medium heat. Add the shallots and saute until softened, about 4-5 minutes. Stir in the garlic and saute until fragrant, about a minute. Add the orzo and stir for about 2 minutes.
Stir in the vegetable broth, scraping the bottom of the pot. Turn the heat up to high and bring the mixture to a boil, stirring often and scraping the bottom so the orzo doesn’t stick.
Once boiling, stir in the broccoli, then reduce heat to low, cover, and simmer for 6 minutes, stirring every few minutes, paying special attention to the edges and bottom of the pan.
At the six minute mark, uncover and stir in the milk. Continue to simmer until the orzo is softened, another minute or so. Stir in the cheeses, stirring until melted. Remove from heat.