getOrderGroupField(); $maxOrderQuery = $model::query(); if ($groupField) { $maxOrderQuery->where($groupField, $model->{$groupField}); } $maxOrder = \intval($maxOrderQuery->max('order')); if ($isDeletion) { $query = $model::query() ->whereKeyNot($model) /** @phpstan-ignore-next-line */ ->whereBetween('order', [$model->order, $maxOrder]); if ($groupField) { $query->where($groupField, $model->{$groupField}); } $query->decrement('order', 1); return; } /** @phpstan-ignore-next-line */ $model->order = $maxOrder + 1; } }