I am currently developing a laravel app where there are 3 user_roles
So each role can acc
Reading the comments I think you want to do the following:
The following solutions are build in ones, maybe there are some packages for laravel to solve this kind of problem.
Auth::loginById($otherUserId) could be one solution:
Another approach would be to use Policies
e.g. you are user 1 and want to edit the profile of user 3. in the update function user/3/profile. You call a policy function where you check if your user_role_id is smaller than the other ones. Then the record will be saved and the logger will log it away with your user id.
Both ways have pros and cons. Login with the id will give you exact the view of the other user. But you have to modify your logger (instead of Auth::id() use something with a session). Then you can implement a little button with (jump back to own profile) to login back in your own account. Using polices will be easier for the logger, but at every part you have to implement the check with the policy.
Not knowing the size and complexity of your project I would suggest the first solution. I implemented it by myself in one project but without the logger function.