vision->isEnabled()) { return response()->json(['tags' => [], 'vision_enabled' => false]); } $artwork = Artwork::query()->findOrFail($id); $this->authorizeOrNotFound($request->user(), $artwork); $limit = (int) $request->query('limit', 10); return response()->json($this->vision->suggestTags($artwork, $this->normalizer, $limit)); } private function authorizeOrNotFound(mixed $user, Artwork $artwork): void { if (! $user) { abort(404); } if ((int) $artwork->user_id !== (int) $user->id) { abort(404); } } }