Не уверен, что правильно понял вопрос, но если ?string $name = null нельзя, то проще всего изменить fromRequest
public static function fromRequest(FormRequest $request): static
{
$v = $request->validated()
return new static($v['name']??null, $v['email']??null);
}
Ещё вопрос почему нельзя ?string $name = null.
UserService->update что должен записать если с формы ничего не пришло? Null? Пустую строку? Ну так почему бы не отразить это в ваших классах?
Но вообще, излишне сложно как-то. Всё же в ларавель столько всего накручено уже, что писать ещё вокруг что-то - чаще всего дублировать функционал.
// кмк так проще и понятнее
final class UserController extends Controller
{
public function update(int $userId, UpdateUserRequest $request): UserResource
{
$valid = $request->validated();
$user = User::findOrFail($userId);
$user->update([
'name' => $valid['name'] ?? "xyz"
'email' => $valid['name'] ?? "null or not",
]);
return new UserResource($user);
}
}