Puoi fare ordine decrescente e ricevi la prima riga che sarà la tua ultima riga nel database. Ma il fatto è che memorizzi la data in modo sbagliato. come menzionato da @Strawberry, la data o il mese non sono chiari. Ti suggerirei di utilizzare mysql datetime opzione quindi puoi semplicemente fare il codice che inserisco di seguito. In questo caso potresti dover analizzare ogni data in modo corretto
$englishgrades = StudentHistory::select('date', 'name', 'grade')
->where('subject', 'english')
->groupBy('name')
->orderBy('date','desc')
->get();