'encrypted', 'provider_data' => 'encrypted:array', 'project_id' => 'integer', ]; public function provider(): SourceControlProvider { $providerClass = config('core.source_control_providers_class')[$this->provider]; return new $providerClass($this); } public function getRepo(?string $repo = null): ?array { return $this->provider()->getRepo($repo); } public function sites(): HasMany { return $this->hasMany(Site::class); } public function project(): BelongsTo { return $this->belongsTo(Project::class); } public static function getByCurrentProject(): Collection { return self::query() ->where('project_id', auth()->user()->current_project_id) ->orWhereNull('project_id')->get(); } }