laravel wherehas and with code example

Example 1: laravel wherehas

$users = User::whereHas('posts', function($q){
    $q->where('created_at', '>=', '2015-01-01 00:00:00');
})->get();
// only users that have posts from 2015 on forward are returned

Example 2: laravel with and where

$projects = Project::whereHas('projectOffers', function ($offer) {
            $offer->where('teacher_id', "Ahmed");
            $offer->where('status_id', "Accepted");
        })->where('status_id', "inprogress")->get();

Example 3: laravel where

$users = DB::table('users')
                ->whereMonth('created_at', '12')
                ->get();