The following powershell module allows you to migrate an entire SQL instance from one server to another. Best part is that it is not complex and takes a single line command to perform the migration.
Start-DbaMigration -Verbose -Source "SQLSERVER01" -Destination "SQLSERVER02" -BackupRestore -SharedPath "\\NetworkShare\SQLBackups\Migration" -Exclude Credentials,
LinkedServers,
SpConfigure,
CentralManagementServer,
DatabaseMail,
SysDbUserObjects,
SystemTriggers,
BackupDevices,
Audits,
Endpoints,
ExtendedEvents,
PolicyManagement,
ResourceGovernor,
ServerAuditSpecifications,
CustomErrors,
DataCollector,
StartupProcedures