I don’t know of good tutorial for Lattice. But the basic is not all that complex. Make a sphere for eyeball. Duplicate the sphere, scale it up a little, and form eyelid over the eyeball. Make two, one for upper and lower eyelid. All three 3D origin need to stay in one place for rotating the eyelid and eyeball
Now add Lattice Object; it is one of the objects you can add like mesh. In edit mode the lattice will act exactly like regular mesh. Scale it up to fit around the eye. Under Object Data buttons you can set the number of subdivisions so that you can control its shape; U, V, and W numbers. Look at the Lattice around my setup.
Back to eyeball, add Lattice Modifier on it and point it to Lattice. The lattice around it will influence the eyeball form. Do the same for both eyelids.
Finally add Empty, pull it away in front of the eyeball. And add Track to constraint so that when you move the Empty eyeball will follow. Since Lattice is a deformer as you point your eye around the pupil image will deform as well. But as you can see it does not deform as much.
Different way of doing the pupil may be to just project it on to the eyeball object. Then you can make your eye even flatter.