Here's one way to do it. I'm using dihedral() in a prim wrangle to compute the matrix that would rotate each primitive's normal to face the vector you want. I'm also binding the center of each primitive to a temporary attribute... this is because when you multiply a point by a 3x3 matrix, you need to make sure the center of rotation is at the origin. Once that's done, I promote the attributes to points, then use a point wrangle to move each primitive's points so that the center is at the origin, multiply by the calculated matrix, then move back to the original pivot position.