'array', 'width' => 'integer', 'height' => 'integer', 'ready_at' => 'datetime', 'expires_at' => 'datetime', ]; public function card(): BelongsTo { return $this->belongsTo(NovaCard::class); } public function user(): BelongsTo { return $this->belongsTo(User::class); } public function outputUrl(): ?string { if (! $this->output_path) { return null; } return Storage::disk((string) config('nova_cards.storage.public_disk', 'public'))->url($this->output_path); } public function isReady(): bool { return $this->status === self::STATUS_READY; } public function isExpired(): bool { return $this->expires_at !== null && $this->expires_at->isPast(); } }