public function __construct()
 {
     if (!Auth::user()->almighty) {
         return redirect('/');
     }
     $this->season = League::whereHas('events', function ($query) {
         $query->where('datetime', '<=', date('Y-m-d'));
     })->max('season');
 }
 public function index()
 {
     $season = League::whereHas('events', function ($query) {
         $query->where('datetime', '<=', date('Y-m-d'));
     })->max('season');
     $venues = \App\Venue::where(function ($query) {
         $query->whereRaw('private is not true');
         $query->orWhereRaw('id in (select venue_id from t_venue_players where player_id = ' . (Auth::user()->id ?: 0) . ')');
     });
     $venuesLive = with(clone $venues)->whereHas('leagues', function ($query) use($season) {
         $query->where('season', '>=', $season);
     })->get();
     $venuesPast = with(clone $venues)->whereDoesntHave('leagues', function ($query) use($season) {
         $query->where('season', '>=', $season);
     })->get();
     $venuesLive->each(function ($venue) {
         $venue->current = 1;
     });
     $venuesPast->each(function ($venue) {
         $venue->current = null;
     });
     $venues = array_merge($venuesLive->all(), $venuesPast->all());
     return view('venues.index', compact('venues'));
 }
 public function __construct()
 {
     $this->season = League::whereHas('events', function ($query) {
         $query->where('datetime', '<=', date('Y-m-d'));
     })->max('season');
 }
<?php

namespace App\ViewComposers;

use View;
use Auth;
use App\Venue;
use App\League;
View::composer('partials.select-venue', function ($view) {
    $season = League::whereHas('events', function ($query) {
        $query->where('datetime', '<=', date('Y-m-d'));
    })->max('season');
    $venues = Venue::where(function ($query) {
        $query->whereRaw('private is not true');
        $query->orWhereRaw('id in (select venue_id from t_venue_players where player_id = ' . (Auth::user()->id ?: 0) . ')');
    });
    $venuesLive = with(clone $venues)->whereHas('leagues', function ($query) use($season) {
        $query->where('season', '>=', $season);
    })->get();
    $venuesPast = with(clone $venues)->whereDoesntHave('leagues', function ($query) use($season) {
        $query->where('season', '>=', $season);
    })->get();
    $view->with('venuesLive', $venuesLive)->with('venuesPast', $venuesPast);
});