I did something like this recently with partition manager(free).
Resize the Boot partition to as small as possible. Make sure the boot partition is smaller or the same size as the destination.
Copy (Don't simply cut/paste in case of errors) the boot partition to the new drive.
Change the hard drive boot priority in Bios.
Make sure you booted to the correct drive.
Resize partitions as you wish.
On my laptop, changing the boot order still somehow kept booting from the original drive. I had to disconnect the original drive in order to get the machine to boot from the SSD. Reconnected the original drive after that and it still boots from the new drive. I kept the original boot partition on the original drive to use as a 'backup partition', so that If the new drive fails or I want an OS refresh I can just copy that original partition over.