relationName = $relationName; } /** * @param \Illuminate\Database\Eloquent\Model $parent * @param \Nuwave\Lighthouse\Execution\Arguments\ArgumentSet $args */ public function __invoke($parent, $args): void { /** @var \Illuminate\Database\Eloquent\Relations\HasOne|\Illuminate\Database\Eloquent\Relations\MorphOne $relation */ $relation = $parent->{$this->relationName}(); if ($args->has('create')) { $saveModel = new ResolveNested(new SaveModel($relation)); $saveModel($relation->make(), $args->arguments['create']->value); } if ($args->has('update')) { $updateModel = new ResolveNested(new UpdateModel(new SaveModel($relation))); $updateModel($relation->make(), $args->arguments['update']->value); } if ($args->has('upsert')) { $upsertModel = new ResolveNested(new UpsertModel(new SaveModel($relation))); $upsertModel($relation->make(), $args->arguments['upsert']->value); } if ($args->has('delete')) { $relation->getRelated()::destroy( $args->arguments['delete']->toPlain() ); } } }