Добавьте новое обнуляемое поле в базу данных на вашем ресурсе, чтобы сохранить текущий идентификатор пользователя, который отвечает за редактирование. Затем добавьте промежуточное программное обеспечение, которое проверит, является ли это поле пустым, а затем свободно редактирует, если не будет доступно только для чтения.
например, у вас есть таблица продуктов:
id title group_id editor_id
1 велосипед 1 5
2 машины 3 ноль
Идентификатор ресурса 1 может редактироваться только идентификатором пользователя 5.
Код ресурса 2 доступен для редактирования любому пользователю, который начинает редактирование.
и затем после выхода пользователя или любого другого поведения, которое вам нравится, попробуйте снова сделать его нулевым, чтобы его могли редактировать другие.
код промежуточного программного обеспечения:
// find the resource
$resource = Resource::find($request->resource_id);
// current user is last user. so no need to check.
if($resource->editor_id == auth()->user()->id) return $next($request);
// check if 10 minutes passed from last edit by another user.
if(Carbon::now()->diffInMinutes(Carbon::parse($resource->updated_at)) >= 10) {
// replace current user id with last one.
$resource->editor_id = auth()->user()->id;
$resource->save();
} else {
return response('You dont have permission to edit.');
}