I think he is referring to database structure of spatie permissions, which has the same db structure.
About your question, you don't need to show, post or delete the pivot table, but in that specific case, better call it grant/revoke.
Or if you prefer you need only create/delete.
You can do something like this:
// Grant role_id the permission_id
PATCH /roles/role_id/permission/permission_id
// Revoke role_id the $permissionId
DELETE /roles/role_id/permission/permission_id
And for user like:
// Grant user_id the permission_id
PATCH /users/user_id/permission/permission_id
// Revoke user_id the permission_id
DELETE /users/user_id/permission/permission_id
For display all permissions of a role or of a user is ok like you write:
{{URL_API}}/api/roles/{role_id}/permissions
{{URL_API}}/api/users/{user_id}/permissions
I create one single AuthorizationController for grant/revoke users and roles, so that part has a separated policies and logic is in one controller.
The url become a bit more longer as I use something like /authorizations/user/user_id/permission/permission_id and same for role.
Then I have one page for role and one for user, with matrix of permission, see role https://ibb.co/JrWbSrZ and here user https://ibb.co/n68Nybn