1/4 cup olive oil
1 Spanish onion, peeled and thinly sliced
1 large garlic clove, peeled and chopped, plus 2 cloves garlic, peeled and cut in half
1 cup dry white wine
1 bay leaf
3 tablespoons unsalted butter
Juice of 1 lemon
4 (1-pound) whole lane snappers, cleaned, with head and tail intact
1 small tomato, sliced
2 celery ribs, halved crosswise
Juice of 5 Key limes or small thin-skinned limes, plus 2 limes cut into quarters for serving
1/4 cup coarsely chopped fresh cilantro
Salt and pepper to taste
Preheat the oven to 400°F.
In a large sauté pan over moderate heat, warm the oil. Add the onion and sauté, stirring occasionally, until softened, about 4 minutes. Add the chopped garlic and sauté, stirring occasionally, for 1 minute. Add 3/4 cup of wine and the bay leaf and bring to a simmer. Continue simmering until the onions are tender and the wine is slightly reduced, about 3 minutes. Whisk in the butter then remove the pan from the heat and whisk in the lemon juice.
Arrange the snappers, side by side, in a 12- by 18-inch or larger roasting pan. Stuff the cavity of each fish with the onion mixture, along with the garlic clove half, tomato slices, and celery. Season to taste with salt and pepper. Spoon the remaining onion mixture over the fish then pour half the lime juice on and around the fish and add 2 cups of water to the pan. Wrap the pan snugly with foil and roast for 25 minutes. Remove the foil and continue roasting until the fish is cooked through, 20 to 25 minutes longer. Remove any onion from the top of the fish then carefully transfer the fish to a large serving platter (do not discard the onion or juices remaining in the pan). Drizzle the remaining lime juice over the fish and cover loosely with foil to keep warm.
Scrape the onion and juices from the roasting pan into a medium saucepan. Add the remaining 1/4 cup white wine and 1/4 cup water, and bring to a simmer. Continue simmering until slightly reduced, then pour through a fine-mesh strainer.
Garnish the fish with cilantro and serve with the reduced pan sauce and lime wedges.
To grill the snapper, preheat the grill to medium-high (about 375°) and grill until just cooked through, about 40 minutes.