In my experience with these kind of tasks, I have better experience writing the code as an artisan command and then execute it either from the console or in Laravel.
https://laravel.com/docs/5.2/artisan
The chunk doesn't mean PHP reset execution time every time a new chunk is being processed. For this you need to make Ajax call and wait for the first chunk to finish before continuing with the next. If you choose this approach, you need to define where to start and size limit and send those parameters with the call.
I recommend the console command, especially if it's something an administrator is doing. It also benefits from the nice progress bar.