My code get data from database using AJAX the problem is i want to filter data by month year and quarter and the code that does that is
            ->where(\DB::raw('MONTH(created_at)'), Carbon::today()->month);
but i can't put it in a variable for example and call it so i did this it works but looks ugly 
Hello I have this Code in Dashboard Controller:

    public function readData(){

    $TableB1 = \DB::table('users')
        ->join('group_user', 'users.id', '=', 'group_user.user_id')
        ->join('groups', 'groups.id', '=', 'group_user.group_id')
        ->select(
           'users.name as name',
           'group_user.user_id as id',
           'groups.name as groupname'
           )
        ->get();

        $filter = $_REQUEST["filter"]; // Get the variable data through AJAX call from the index


        foreach ($TableB1 as &$entry){
            if ($filter == 'month'){ // Filter data by month
            $meetings = \DB::table('meetings') 
            ->where('company_id', 1)->where('owned_by_id', $entry->id) 
            ->where(\DB::raw('MONTH(created_at)'), Carbon::today()->month);
            }
            else if ($filter == 'quarter'){ // Filter data by quarter
                $meetings = \DB::table('meetings') 
                ->where('company_id', 1)->where('owned_by_id', $entry->id) 
                ->where(\DB::raw('QUARTER(created_at)'), Carbon::today()->quarter);
            }
            else if ($filter == 'year'){ // Filter data by year
                $meetings = \DB::table('meetings') 
                ->where('company_id', 1)->where('owned_by_id', $entry->id) 
                ->where(\DB::raw('YEAR(created_at)'), Carbon::today()->year);
            } else { // Filter data by day
                $meetings = \DB::table('meetings') 
                ->where('company_id', 1)->where('owned_by_id', $entry->id) 
                ->where(\DB::raw('DAY(created_at)'), Carbon::today()->day);
            }
            $entry->meetingsCount = $meetings->count();
            
           
        }

        return $TableB1;

     }
   
And in index.blade I have this code to retrieve the data using ajax

    var filter = 'day';

    $(document).ready(function(){
        $.get('/dashboard/read?filter=' + filter, function(data){
            $.each(data,function(i,value){
                var tr =$("<tr/>");
                tr.append($("<th/>",{
                    text : value.groupname
                })).append($("<th/>",{
                    text : value.name
                })).append($("<th/>",{
                    text : value.meetingsCount
                })).append($("<th/>",{
                    text : value.callsCount
                })).append($("<th/>",{
                    text : value.leadsCount
                }))
                $('#tableData').append(tr);
            })
        })

        $("#day").click(function() { // Filter data by day
            filter = 'day';

            $('#tableData').find('tr').empty(); // Clear Table 1st


            $.get('/dashboard/read?filter=' + filter, function(data){
                $.each(data,function(i,value){
                    var tr =$("<tr/>");
                    tr.append($("<th/>",{
                        text : value.groupname
                    })).append($("<th/>",{
                        text : value.name
                    })).append($("<th/>",{
                        text : value.meetingsCount
                    })).append($("<th/>",{
                        text : value.callsCount
                    })).append($("<th/>",{
                        text : value.leadsCount
                    }))
                    $('#tableData').append(tr);
                })
            })
        });

        $("#month").click(function() { //Filter data by month
            $('#tableData').find('tr').empty(); // Clear Table 1st

            filter = 'month';

            $.get('/dashboard/read?filter=' + filter, function(data){
                $.each(data,function(i,value){
                    var tr =$("<tr/>");
                    tr.append($("<th/>",{
                        text : value.groupname
                    })).append($("<th/>",{
                        text : value.name
                    })).append($("<th/>",{
                        text : value.meetingsCount
                    })).append($("<th/>",{
                        text : value.callsCount
                    })).append($("<th/>",{
                        text : value.leadsCount
                    }))
                    $('#tableData').append(tr);
                })
            })
        });

        $("#quarter").click(function() { //Filter data by quarter
            filter = 'quarter';

            $('#tableData').find('tr').empty(); // Clear Table 1st

            $.get('/dashboard/read?filter=' + filter, function(data){
                $.each(data,function(i,value){
                    var tr =$("<tr/>");
                    tr.append($("<th/>",{
                        text : value.groupname
                    })).append($("<th/>",{
                        text : value.name
                    })).append($("<th/>",{
                        text : value.meetingsCount
                    })).append($("<th/>",{
                        text : value.callsCount
                    })).append($("<th/>",{
                        text : value.leadsCount
                    }))
                    $('#tableData').append(tr);
                })
            })
        });

        $("#year").click(function() { //Filter data by year
            filter = 'year';

            $('#tableData').find('tr').empty(); // Clear Table 1st

            $.get('/dashboard/read?filter=' + filter, function(data){
                $.each(data,function(i,value){
                    var tr =$("<tr/>");
                    tr.append($("<th/>",{
                        text : value.groupname
                    })).append($("<th/>",{
                        text : value.name
                    })).append($("<th/>",{
                        text : value.meetingsCount
                    })).append($("<th/>",{
                        text : value.callsCount
                    })).append($("<th/>",{
                        text : value.leadsCount
                    }))
                    $('#tableData').append(tr);
                })
            })
        });


I know its a mess but how to refactor this code to make it look a little bit nicer the code works but looks awful