transform.rotation cancels movement.

So I have this code:

 void Move(float h, float v)
        movement.Set(h, 0f, v);

       movement = movement.normalized * movementSpeed * Time.deltaTime;

        rb.MovePosition(transform.position + movement);

and it works perfectly fine, but when I have this running:

if (movement !=

            transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(movement), rotationSpeed *Time.deltaTime);

then my movement code works with a delay, waits for the gameObject to turn, the weirdest thing is the fact that this code worked perfectly fine in 2017.1

Using this:

 rb.MoveRotation(Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(movement), rotationSpeed * Time.deltaTime));

instead, works normal.