Getting your values from the Input on your model is a very bad practice. You should pass the Input values as params
public function setBirthdayAttributes($year, $month, $day)
Then again, to me the setBirthdayAttributes method name is a bit confusing, could be read has a attribute mutator but its not. Moreover this method is not really useful. Why don't you simply do this in your controller:
$user->birthday = date('Y-m-d', Input::get('year') . '-' . Input::get('month') . '-' . Input::get('day'));
You alo will need some validation on the date part, and maybe make use of Carbon is an option on your model by declaring the birthday attribute as a date:
class User extends Eloquent {
protected $dates = ['birthday'];
...
}