Database will return date field as simple string. And, Laravel does not check the database table Schema every single time to know what the column type is. Only after the data is fetched, it will cast using the casts array provided. Try using DB::table('news')->get() to see the raw result.