Is there a way to define an attribute setter method on a model?
In your model you can override setAttribute(), which covers calling setAttribute('foo', 'bar') directly as well as $model-&gt;foo = 'bar'.

public function setAttribute($name, $value)
{
    if ($name == 'foo')
    {
        // Not sure if your value will be a dateTime object, string, etc.
        // But check to see if it's &lt; than today's current date.  If so,
        // set $value = new DateTime();
    }

    parent::setAttribute($name, $value)
}