validated('priority_order'); return DB::transaction(function () use ($model, $newPriority): RedirectResponse { $query = $model::query() ->whereKeyNot($model) ->whereBetween('priority_order', [ min($model->getPriorityOrder(), $newPriority), max($model->getPriorityOrder(), $newPriority), ]); $groupField = $model->getOrderGroupField(); if ($groupField) { $query->where($groupField, $model->{$groupField}); } $model->getPriorityOrder() < $newPriority ? $query->decrement('priority_order', 1) : $query->increment('priority_order', 1); $model->setAttribute('priority_order', $newPriority); $model->saveOrFail(); return redirect()->back()->with('success', trans('crud.messages.order_changed')); }); } }