Someone more knowledgeable can step in, but if I were building that I would use a cylinder and rotate some of the faces slightly then extrude inward to create that slanted swirl look. Could also use a hemisphere as it does resemble a sphere like shape based off the rounded portions of it. If this is not meant to be super clean, I would model the cap separately from the spout. The spout could just be a cylinder that literally just sticks into the cap. If you need to look down the spout you'd need to cut a hole where the cap intersects the cylinder.
I would start with a circle or a cylinder, and use extrude & scale to get all the different levels, then manually adjust them to get the askew offset. Then I would add extra loopcuts where it should rounded and use proportional editing to get that shape. And like Jonathan suggested, just use a cylinder for the sprout. You can use a Boolean operation if you want to connect / make a hole if you want, but if it’s not zoomed in on then I would just stick it through the cap mesh and let it be.
This is a lot harder than it looks! The main thing is to understand the shape; I would start by making the spiral (use the screw modifier and proportional editing, for instance), then fill in the faces ( the F2 addon makes that really easy!) then create some edge loops to refine the shape.
For the spout , I would do that like Jonathan suggested, If you do need a hole in the lid, I would re-topologise the area where the spout enters the lid. (Just put a placeholder cylinder through the lid...)
sste81 You could certainly try that, but I think that it would be rather difficult to get a nice and regular spiral.
And on top of that, the spiral you would get that way would have a changing angle from almost vertical at the bottom to almost flat at the top. Unless you only make 'one' cut, but then you have a spiralling 'line' (with irregularly distributed vertices!) which you will some- how have to extrude into an edge loop. Nothing but trouble I'd say and I am sure the result would be a horrible topology at least.
But I haven't tried it so maybe you can get it to work...