Fire PHP based on workflow

My problem is that the logic hook fires every time the record is saved (any field). So I have a condition in PHP - something like

if (!empty($somefield)) {run something}

And I need it to run when this field is NOT empty so it means I fill in something (or check a checkbox) but when it starts saving itself - the field I just checked is actually still empty. If I would try this one second later it would all work.

Or should I use another event for this hook?