Dealing with time zones can be a frustrating experience. Here's an attempt to brighten your day.
However, changing that configuration will affect both the stored and manipulated date's time zones.
The app.timezone configuration setting has to be set to the timezone that should be used when saving dates in the database.
Many developers are used to assign Carbon instances to date attributes: $model->published_at = Carbon::create($request->published_at); This can lead to unexpected behavior because the assigned Carbon instance will default to the UTC timezone, whereas the provided value was probably meant for another timezone.