Pause:

Time.timeScale = 0f;
pausePanel.SetActive(true);

Cursor.lockState =
    CursorLockMode.None;

Cursor.visible = true;

Resume:

Time.timeScale = 1f;
pausePanel.SetActive(false);

Cursor.lockState =
    CursorLockMode.Locked;

Cursor.visible = false;

You can also switch between Player and UI Action Maps.