attributes['email'] = strtolower($value); } public function team() { return $this->belongsTo(Team::class); } public static function ownedByCurrentTeam() { return TeamInvitation::whereTeamId(currentTeam()->id); } public function isValid(): bool { if (! $this->hasExpired()) { return true; } else { $this->delete(); $user = User::whereEmail($this->email)->first(); if (filled($user)) { $user->deleteIfNotVerifiedAndForcePasswordReset(); } return false; } } public function hasExpired(): bool { return $this->created_at->diffInDays(now()) > config('constants.invitation.link.expiration_days'); } }