'integer', 'credentials' => 'encrypted:array', 'project_id' => 'integer', ]; public function user(): BelongsTo { return $this->belongsTo(User::class); } public function provider(): \App\StorageProviders\StorageProvider { $providerClass = config('core.storage_providers_class')[$this->provider]; return new $providerClass($this); } public function backups(): HasMany { return $this->hasMany(Backup::class, 'storage_id'); } public function project(): BelongsTo { return $this->belongsTo(Project::class); } public static function getByProjectId(int $projectId): Builder { return self::query() ->where(function (Builder $query) use ($projectId) { $query->where('project_id', $projectId)->orWhereNull('project_id'); }); } }