How do you rotate a Group of Objects around an arbitrary axis?

i had this same issue a week ago, My 3D model is not rotating around its origin , use the applyMatrix.
myGroup.applyMatrix( new THREE.Matrix4().makeTranslation(x, y, z) );

how it works is that you can give the 3d model a new point to rotate around, so i found an origin point and passed it as a matrix, you can do the same for your vertical line