Melt the butter in a saucepan and fry the onions and garlic over a low heat, stirring frequently, for 10-15 minutes until soft, but not colored. Stir in the flour and cook, stirring for 1 minute, then gradually stir in the stock and bring to a boil, stirring frequently. Add the milk, then bring back to a boil.
Season to taste with salt and pepper and add 2 teaspoons of the lemon or lime juice, allspice, and bay leaf. Cover and simmer for about 25 minutes until the vegetables are tender. Discard the bay leaf.
Stir in the carrot and simmer for 2-3 minutes. Add more lemon or lime juice, if necessary. Stir in the cream and reheat. Garnish with parsley