|WebsiteArticleReaction where($column, $operator = null, $value = null) * @method static \Illuminate\Database\Eloquent\Builder|WebsiteArticleReaction first($columns = ['*']) */ class WebsiteArticleReaction extends Model { use BelongsToUser; use HasFactory; #[\Override] protected $guarded = ['id', 'user_id', 'article_id']; #[\Override] public $timestamps = false; #[\Override] protected $hidden = [ 'user_id', 'article_id', ]; /** * @return static|null */ public static function getReaction(int $articleId, int $userId, string $reaction): ?self { /** @var static|null $reaction */ $reaction = self::where('user_id', $userId) ->where('article_id', $articleId) ->where('reaction', $reaction) ->first(); return $reaction; } #[\Override] public static function boot(): void { parent::boot(); static::creating(function ($model) { $model->user_id = auth()->id(); }); } public function article(): BelongsTo { return $this->belongsTo(WebsiteArticle::class, 'article_id'); } }