Hexagons have happened so many times I decided to refine my technique of spawning them. Using the generalized technique of reproducing patterns from here:

And the anatomy of a hex from here:

You can create a lattice of hexes by making the offset $A$ of the horizontal distance between two hexes, which is two inradii (heights of equilateral triangle) $2r = {2a \over 2} = {2s \sqrt{3} \over 2} = s \sqrt{3}$, and the offset $B$ is the same but rotated by $60°$ (other multiplies of $60°$ would also work as long as not divisible by $180°$):

Which for $s = 1$ makes for a very simple setup:

You can see the horizontal dimension $x$ translates to $x-1 \over 2$ hexes on either side of the center hex (the dimensions need to be odd for there to be a center hex) horizontally, and $y$ translates to $y-2 \over 2$ rows of hexes above and below. If you're interested in the vertical dimension, it's $A+s$ (largest width + side length) for each two rows in either vertical direction:

So for each row, the vertical offset is ${A+s \over 2} = {2s+s \over 2} = {3s \over 2} = 1.5s$ or you could take the cosine of the $60°$ multiplied by horizontal length:
>>> sin(radians(60)) * sqrt(3)
1.4999999999999998
In Geonodes you could also use Vector Rotate node to rotate the horizontal offset and separate its $y$ component… Once we have the parallelogram lattice, move it to center, and delete hexes further than some radius (cut out a circle out of it):


For some fancy (dis)appearing, you could realize the hexagons in the base radius, and apply my answer here:
How to make disintegration or dissolve effect from center of the object with texture or geometry nodes?
Or even better, don't realize the hexagons, and delete the points by using the technique in quellenform's answer. For a spiral effect you would just add a Gradient Texture in radial mode.
