Grease 2 baking trays and set aside.
Heat the oil and butter in a pan and fry the onions for a couple of mins. Drain and set aside.
In a jug, mix 200ml of lukewarm water, honey and yeast and leave for 5mins.
In a large bowl add the flour and salt in a large bowl. Pour over the eggs, oil, onions and yeasty liquid and mix into a rough dough.
Tip out onto the work surface and knead together until smooth and elastic – this should take around 10 mins.
Put the dough in a lightly oiled bowl and cover with a piece of oiled cling film. Place in a warm area and leave until doubled in size, about 1 hr, then uncover and tip onto your work surface.
Divide the dough into 12 portions and roll into balls. Line up on 2 parchment-lined baking trays and cover lightly with cling film.
Leave for around 30 mins or until they have risen.
Make a hole in the centre of each bagel, swirling it around to stretch the dough a little, but being careful not to knock out too much air.
Preheat oven to 200°c / gas 6.
Fill a large saucepan with water and bring to the boil and cook bagels in batches for 3 mins. Transfer to the greased baking trays. Sprinkle with seeds and bake in the oven for 10mins on each side, or until golden brown.
When baked, transfer to a wire rack to cool and fill with your favourite filling. They will keep in an airtight container for 3-4 days.