'boolean', 'settings' => 'array', ]; } protected static function booted(): void { static::creating(function (Website $website) { if (empty($website->tracking_id)) { $website->tracking_id = 'TA-' . strtoupper(Str::random(10)); } }); } public function user(): BelongsTo { return $this->belongsTo(User::class); } public function visitors(): HasMany { return $this->hasMany(Visitor::class); } public function sessions(): HasMany { return $this->hasMany(AnalyticsSession::class); } public function pageViews(): HasMany { return $this->hasMany(PageView::class); } public function events(): HasMany { return $this->hasMany(Event::class); } public function goals(): HasMany { return $this->hasMany(Goal::class); } public function goalConversions(): HasMany { return $this->hasMany(GoalConversion::class); } public function embedSnippet(): string { $scriptUrl = route('tracking.script', $this->tracking_id); return << HTML; } }