Můžete provést sestupné pořadí a obdržíte první řádek, který bude vaším posledním řádkem v databázi. Jde ale o to, že ukládáte datum nesprávným způsobem. jak uvádí @Strawberry, není jasné datum ani měsíc. Doporučil bych vám použít mysql datetime možnost, pak můžete jednoduše provést kód, který zveřejním níže. V tomto případě možná budete muset analyzovat každé datum správným způsobem
$englishgrades = StudentHistory::select('date', 'name', 'grade')
->where('subject', 'english')
->groupBy('name')
->orderBy('date','desc')
->get();