Mostly, hosting service provider provides free migration service.
If not, it is also not difficult to do it by yourself.
Firstly, access to file manager via cpanel or FTP, compress the public_html folder and download the zip file at your local drive.
Then access to PHPMyAdmin at cpanel, click on the database and export, then download it at the local drive.
After that, upload and unzip the public_html folder at the new platform.
Then access to MySQL databases at cpanel and create a database, create a user, assign a user to the database.
Access to phpmyadmin and select database, then import the downloaded SQL file.
Finally, right click and edit wp_config.php at public_html, enter the database details, e.g. database name, database user and password
After a preview, the temporary site, check everything goes right, then update DNS record and point to new nameservers.