This is an older question, but none of the answers here are up to date with the latest Laravel documentation. For newer versions of Laravel (Laravel 5.6+), there is a somewhat easy fix to this problem, but it does take publishing the vendor pagination views, as per Laravel Documentation. Assuming you haven't already published or changed the default pagination view, the command you run is:
php artisan vendor:publish --tag=laravel-pagination
Once the views are published, you will find bootstrap-4.blade.php in the resources/views/vendor/pagination directory. You can edit this file and make the pagination links appear however you want. In order to reduce the number of links displayed by default, I simply used a little bit of inline php to set an index and limit the number of links to display, as shown below:
{{-- Array Of Links --}}
@if (is_array($element))
<?php $index = 0; ?>
@foreach ($element as $page => $url)
@if($index<4)
@if ($page == $paginator->currentPage())
<li class="page-item active" aria-current="page"><span class="page-link">{{ $page }}</span></li>
@else
<li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
@endif
@endif
<?php $index++ ?>
@endforeach
@endif
Most of this code is in the default blade view for bootstrap-4.blade.php, but I added the $index=0, $index<4, $index++ code to LIMIT the number of links on the left side of the paginator to 4.
This is the correct way to handle this problem as per Laravel documentation, without editing composer vendor files, or trying to hack the system in some other way. I do realize that JR Lawhorne posted a similar answer, but it does not include the entire process of publishing the vendor file before posting. Hope this helps others.