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 != Vector3.zero)
        {

            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.