First of all, you've pushed a token in a public forum. Go in immediate and revoke access to it, otherwise anyone can get access to your account.
Second, the call you're making to sis_imports isn't at the course level. SIS imports are only at the account level.
In my PHP, I don't use the HEADER_OUT (why do you need the request header -- you want the response header), HTTP_VERSION, or SSL_VERIFYPEER options. I'm not sure those are the problems though.
On the last line, you have CURLOPT_RETURNTRANSFER a second time (it's also the first option), but this time it's specified with a comma rather than => between it and the true.
You're not even looking at the headers to handle pagination, though. After the curl_exec and before the curl_close, you need to get the header and separate it from the body. Here's what I use to do that.
$header_size = curl_getinfo( $ch, CURLINFO_HEADER_SIZE );
$header = substr( $response, 0, $header_size );
$body = substr( $response, $header_size );
The json_decode should only be done on the body, not the entire result. The first part isn't in JSON format.
In your original post, you lamented people using Python or other languages. There is a very long and very old thread here in the Canvas Developers called Handling Pagination. In March 2016, I shared the code I was using for PHP to handle the API calls and the pagination. I'm not using Laravel and I have probably tweaked the code since I wrote it, but you can look at it for inspiration.