api = $api; $this->resource = $resource; } public function handle(Request $request): Response { $schema = $this->resource->getSchema(); if (! ($schema->isCreatable)($request)) { throw new ForbiddenException('You cannot create this resource'); } $model = $this->resource->getAdapter()->create(); foreach ($schema->creatingCallbacks as $callback) { $callback($request, $model); } $this->save($model, $request, true); foreach ($schema->createdCallbacks as $callback) { $callback($request, $model); } return (new Show($this->api, $this->resource, $model)) ->handle($request) ->withStatus(201); } }