Particles: Setting object's origin is not fixing it not passing through the middle of the surface
Objects used as hair particles do not view Z+ as &quot;up&quot;.  They must have a different orientation, for some legacy reason coming from the particle system's beginnings, afaik.
Model and texture your object, align it at the origin as though you were aligning a regular object on a ground plane.  Exactly as you have in the image you've presented.  Then, with the object selected, press R + X + -90 to rotate the object -90 degrees on the X axis, and then press Ctrl + A and apply the rotation.