I was able to resolve it by declaring the table as v-data-table-server
instead of v-data-table
(thanks @MoritzRingler) :
<v-data-table-server v-model:items-per-page="itemsPerPage" :headers="headers" :items="users"
:items-length="totalItems" :loading="loading" item-key="id"
@update:options="fetchUsers({ page: page, itemsPerPage: itemsPerPage, search: search })"
:items-per-page-options="itemsPerPageOptions" :page="page" @update:page="onPageChange">
Also make sure the data from backend is sent with 'total', 'per_page', 'current_page', 'last_page', 'next_page_url', 'prev_page_url'
fields.