applications()->create([ 'rank_id' => $positionId, 'content' => $content, ]); } /** * @return Collection */ public function fetchOpenPositions(): Collection { return WebsiteOpenPosition::canApply()->with('permission')->get(); } public function hasUserAppliedForPosition(User $user, int $positionId): bool { return $user->applications()->where('rank_id', $positionId)->exists(); } public function isPositionOpenForApplication(WebsiteOpenPosition $position): bool { $currentTime = now(); return $position->apply_from <= $currentTime && $position->apply_to >= $currentTime; } }