Looks quite good. So far, I spotted no mistake other than a missing parenthesis in the last line.
Next, I'd transform (a & ¬d) | ¬a | ¬d | ¬c. Since satisfying a&¬d already satisfies ¬d, we can drop a&¬d.
Then we are left with:
((¬a | ¬d | ¬c) | ((¬a | b) & (¬b | a))) & c // we then multiply out
=(¬a | b | ¬a | ¬d | ¬c) & (¬b | a | ¬a | ¬d | ¬c) & c // the clause in the middle is a tautology as there's a|¬a, the clause on the left has a redundant literal ¬a
=(¬a | b | ¬d | ¬c) & c // as the outer conjunction requires c to be satisfied, we can drop ¬c from the other clause
= (¬a | b | ¬d) & c