Preheat the oven to 200°C/400°F/gas 6. Whisk the eggs, 150g of flour, a pinch of sea salt, the milk and 2 tablespoons of water into a smooth batter, then put aside.
Peel the mushrooms, saving the peelings. Place the mushrooms cap side down in a large non-stick roasting tray, drizzle with 1 tablespoon of olive oil and season with salt and black pepper. Roast for 30 minutes. Meanwhile, for the gravy, peel the onions and finely slice with the mushroom peelings, then place in a pan on a medium-low heat with 2 tablespoons of oil. Strip in half the rosemary and cook for 15 minutes, or until dark and gnarly, stirring occasionally. Add the porter and 2 tablespoons of red wine vinegar and let it reduce by half, then stir in the remaining flour. Gradually add 700ml of water, stirring regularly, then simmer to the consistency of your liking and season to perfection. Peel and finely slice the garlic, pick the remaining rosemary, then drizzle and rub it all with a little oil.
Remove the tray from the oven and put the mushrooms on a plate for a moment. Working quickly but carefully, pour the batter into the tray, sit the mushrooms towards the centre, then sprinkle over the oiled garlic and rosemary. Return to the oven for 25 minutes, or until puffed up and golden. Serve with the gravy.