I am stumped as to how this works in order to find the direction.
target.position - transform.position;
I know how to implement it, thats not the problem. But if I have a position at (5,3,1) and a target position at (3, 1, -2) and I take the difference between them, i get (-2, -2, -1) Thats just some point in between them. How does using that inside something ilke LookRotation() get me from point a to point b?
Subtracting one point from another returns a direction, which is a “relative” vector. A point is an “absolute” vector.
Note in your example the result is (-2,-2,-3), which is the required “distance” to get from transform.position to target.position. Hence, (5,3,1)+(-2,-2,-3)=(3,1,-2).
Methods such as LookRotation expect a direction as an argument, not a point.
I suggest a tutorial about vector operations to help your understanding.