'datetime', ]; } /** * @return BelongsTo */ public function user(): BelongsTo { return $this->belongsTo(User::class); } public function isExpired(): bool { return $this->expires_at->lte(now()->addMinutes(5)); // 5-min buffer } public function isValid(): bool { return ! $this->isExpired(); } /** * @param Builder $query * * @return Builder */ public function scopeForProvider(Builder $query, string $provider): Builder { return $query->where('provider', $provider); } }