Adjust the oven rack to the middle position and preheat oven to 400 degrees F.

Heat a medium saute pan over medium high heat and drizzle with 2 Tablespoons of the canola oil. Add the onions and cook until caramelized, about 8 to 10 minutes. Deglaze the pan with 1/4 cup of water, scraping any brown bits from the bottom with a wooden spoon. Cook until the water evaporates and the onions take on a uniform brown color, about 5 minutes.

Transfer the onions to the roasting pan and toss with the raw sliced potatoes. Add 1 tablespoon of butter and the remaining 3 Tablespoons of oil. Toss with your hands. Season generously with salt and pepper. Cover the pan with foil and bake for 25 to 30 minutes, or until the potatoes are tender.

Set the potatoes aside to cool for 15 minutes. Reduce the oven heat to 350 degrees F.

Meanwhile, whisk the eggs, herbs and cream together. Season with salt and pepper.

(optional) Saute bacon in medium saute pan, about 5 minutes, or until golden brown. Mop up excess grease with a handful of paper towels. Lay cooked bacon on a plate topped with a paper towel.

Heat a 10-inch cast-iron skillet over medium high heat. Melt the remaining 2 Tablespoons butter in the skillet, making sure that melted butter greases the side of the cast iron as well. Add the cooked potatoes to the pan. Top with the egg mixture. Cover the skillet with foil and bake for 30 minutes. Remove the foil and bake for 10 minutes more.

Slice and serve directly from the skillet, warm or at room temperature.