Using Laravel 12, you can paginate database records using Eloquent or Query Builder. Laravel provides three pagination methods:
1. `paginate()` ? Standard pagination with page numbers.
2. `simplePaginate()` ? Uses "Next" and "Previous" links instead of numbered pages.
3. `cursorPaginate()` ? Efficient pagination for large datasets using cursors.
1. Eloquent Pagination Example
<?php
use App\Models\Post;
$posts = Post::paginate(10); // Fetch 10 posts per page
return view('posts.index', compact('posts'));
?>
Blade View (posts/index.blade.php)
```blade
@foreach($posts as $post)
<h2>{{ $post->title }}</h2>
@endforeach
<!-- Pagination Links -->
{{ $posts->links() }}
2. Simple Pagination (Next/Prev Buttons)
<?php
$posts = Post::simplePaginate(10);
?>
Use when you don't need numbered links (better performance).
3. Cursor Pagination (For Large Datasets)
<?php
$posts = Post::cursorPaginate(10);
?>
Best for performance when paginating millions of records.
4. Pagination Using Query Builder
<?php
use Illuminate\Support\Facades\DB;
$posts = DB::table('posts')->paginate(10);
?>
5. Customizing Pagination in Laravel
<?php
$posts = Post::paginate(10, ['*'], 'custom_page');
?>
This changes the default page query parameter (`?page=1`) to `?custom_page=1`.