Melt 1/4 cup butter in a large pot over medium heat. Add carrots, celery, and green onions; cook and stir until starting to brown, about 10 minutes. Stir in portobello mushrooms; cook until softened, 3 to 4 minutes.
Pour chicken broth into the pot. Add artichoke hearts, thyme, oregano, cayenne pepper, and bay leaves. Simmer soup until flavors combine, 15 to 20 minutes.
Melt remaining 1/4 cup butter in a small skillet over low heat. Add flour; cook and stir until a paste forms, about 1 minute. Pour in milk. Bring to a simmer and cook, stirring constantly, until thickened, about 5 minutes.
Pour milk mixture into the soup. Stir in heavy cream slowly. Simmer until soup is slightly thickened and heated through, 3 to 5 minutes. Discard bay leaves before serving.